2012-01-12 19 views
1

私が使用しているファイルを少し変更して編集をコミットしようとしました。svnコミットに失敗しましたが、私の編集でrepoの古いリビジョンが変更されました

$ svn commit -m "comment" 
Sending  pom.xml 
svn: E160042: Commit failed (details follow): 
svn: E160042: File or directory 'pom.xml' is out of date; try updating 
svn: E160024: resource out of date; try updating 

AFAIK、今はレポに変更がありませんでしたか? 誰かが変更を加えたようですが、ファイルを編集する前に自分の作業コピーを更新するのを忘れていました。予想通り

$ svn update 
Updating '.': 
U another.unrelated.file 
G pom.xml 
Updated to revision 11943. 

、私たちの変化は、(右?、私の作業コピーに)マージされましたので、私は状態を確認してください。

$ svn status 

変更なし?どうして? pom.xmlのマージされた作業コピーは変更されたものとしてマークされていませんか? 私はsvn infoを実行して、何が起こっているのかを確認します。

$ svn info 
Path: . 
Working Copy Root Path: working/dir 
URL: https://not.relevant 
Repository Root: https://not.relevant 
Repository UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 
Revision: 11943 
Node Kind: directory 
Schedule: normal 
Last Changed Author: otherguy 
Last Changed Rev: 11856 
Last Changed Date: 2012-01-04 16:12:42 +0100 (Wed, 04 Jan 2012) 

は1 によってotherguy 8日前に私の変更の代わりになる「最後に変更さ」ではないでしょうか?だから私は実際に何があるかを見るためにレポファイルをキャッチしています。

svn cat https://company.com/repo/path/to/pom.xml | less 

そして、ファイルのマージバージョンが表示されます。 (私とotherguyの両方の変更に伴い)。

ここで何が起こったのですか? svnは、メタデータを更新することなく、変更したファイルの既存のリビジョンを変更しましたか?それも可能ですか?

+0

otherguyは私と同じ変更を行ったので、私のコミットは決して行われませんでした。 –

答えて

2

あなたの作業コピーはまだ古くなっていると思います。

レッドブックは言う:

http://svnbook.red-bean.com/en/1.5/svn.ref.svn.c.cat.html

作業コピーが古くなっている(またはローカルの変更を持っている)場合 、あなたの作業コピーのファイルのHEADリビジョンを見たいです

お近くのpom.xmました:、HEAD FILENAME -r のsvn catは自動的に 指定されたパスのHEADリビジョンを取得します実際にはレポから取り出されたものと違っていますか?

+0

私の作業コピーは最新のものです。もちろん、私の変更がHEADに既に存在する可能性があります(otherguyによって追加された)ので、更新後、私の変更は冗長になります。それは、行動を説明するだろうか? –

+0

これは論理的な説明です。確かに私たちはsvn statusとsvn catのsvnクライアントソースコードを調べなければなりません。何かは私にそれのための時間がないと言う:-) – rene

+0

それはあまりにも事実でした! Otherguyは彼の最後のコミットで全く同じことを変えていたので、私は完全に冗長になり、コミットする必要はありませんでした。 –

関連する問題