switchしすぎ
svn が未だに満足に扱えなくて泣ける(´;ω;`)
今日の不具合は swith の使いすぎが原因のようで。
新しい案件を振られたあたしはそれに取り掛かるため、
svn copy して新しいブランチを作ったのです。
そのあと、今まで作業していたブランチから svn switch し、
新しいブランチに切り替えました。が、何かがおかしい。
前のブランチで使ってたファイルが新しい方でも見に行ける…?
原因がよくわかんなくて何度かブランチを切り替えていたところ、思い出しました。
svn commit していない(svnの管理下にない)ファイルは
svn switch で切り替えても作業コピーに残る
そう、これを忘れていました。見事に作業コピー編集しっぱなし。
すぐにもとのブランチに戻ってとりあえず svn st してみる。
…な、なんだこれは…っ
一番左に表示される更新されるファイル(項目)の状態みたいなとこに
A + C S(順番忘れた)って書いてある…!
これはどうやら
A : 追加準備中
C : リポジトリと競合
S : ファイルが切り替えられている
- : コミット準備されている履歴がある
を示しているようで。
要はぐちゃぐちゃ。あちゃー
どうすればいいのかわかんなかったので、同期召喚。(お世話になっております)
とりあえず svn update。ふぬん、なにも変わらない。
じゃあと思って該当してるファイルを svn revert して、svn add しなおし、
もう一度 svn st してみたら A だけになった!勝った!
該当してるファイル全部それして svn commit !してみたら!
……通らない…だと…!?
いじめとしか思えない。
リポジトリの方に同名のファイルがあるから追加させないぜっ!てエラーが。
そういえばこないだ commit したやん、あたし。
そりゃリポジトリにあるよ。
でも、なら、なんで svn st ででるのが M じゃなくて A なのだ…?
多分、一度 commit した後にファイルをいじって、
最終的な commit をせずに
そのファイルをもってないブランチと switch しまくったときに
svn の方でなにかがおかしくなり、管理下から外れてしまった模様。
いじめてたのはあたしの方でした、ごめんなさい。
へこたれながらエラーメッセージを見たところ、
「local edit, incoming delete upon switch」とのこと。
スイッチ完了したらこれ消えちゃうよーってことらしい(たぶん)
それは困る。でも解決できない。困り果てた。
ここで同期を召喚する。(いつもほんとうにありがとう;;)
「他のディレクトリに作業コピーをチェックアウトし、
そこでファイルを最新のものに更新、commit でFA」とのこと。
やってみる。
mkdir して そこに svn co、最新のファイルに更新してcommit。
で き ま し た ◎
これでリポジトリのファイルはきれいに最新のものに整えられたぜいっ
でもでも、これでは終わりません。
あたしは新しいブランチで作業したいのです。
このままじゃ終われない。
さらに同期召喚。(ほんとにほんとにありがとう;;;;;;)
ディレクトリを戻し、新しいブランチに svn switch。
こっちではこのエラーもとのファイルはいらなかったので、該当ファイルを svn revert し、削除。
これでおしまいヾ(*´∀`*)ノキャッキャ
試しにもとのブランチに戻って svn st してもエラーは出ないし、
新しいブランチで消したファイルもこっちではちゃんと復活してましたーー!
やっとこさ通常運転、よかったよかった!