web-dev-qa-db-ja.com

どのようにしてSVNの '期限切れ'エラーを克服しますか?

Subversionでディレクトリ構造をある場所から別の場所に移動しようとしましたが、Item '*' is out of dateコミットエラーが発生しました。

私は(私が言うことができる限りで)最新バージョンをチェックアウトしています。 svn st -uは、mvコマンド以外に違いはありません。

329
Tim Visher

私は時々TortoiseSVNでこれを手に入れます。私にとっての解決策は、ダウンロードや更新のためのリビジョンがないにもかかわらず、ディレクトリをsvn updateすることです。それはメタデータに何かをし、それはそれを魔法のように修正します。

617
Michael

すべての明白なことを試した後、ここで他の提案をいくつか試してみても、何の問題もなく、Googleの検索でこのリンクにつながった(リンクが機能しなくなった) - 時代遅れ

一言で言えば、トリックは.svnディレクトリ(問題のあるファイルを含むディレクトリ内)に移動し、 "all-wcprops"ファイルを削除することです

他に何もしなかったとき私のために働きました。

41
Tom Bushell

私はこの問題が.svnファイルから来ていると思います。それは、古い親、新しい親、または古い親のいずれかでは正しくありません。出発点に戻りましょう。エクスポートを使用して、フォルダの新しいコピーを取得してください。クリーンコピーを新しい場所に移動し、追加と削除を使用して移動します。それは手動でSVNがすることをしています、しかしそれはうまくいくかもしれません。

39
Jim Deville

私はこれが私のために働くことがわかりました:

svn update
svn resolved <dir>
svn commit
31
Per Löwgren

ローカルコピーを更新しようとし、問題のアイテムを元に戻しても、「期限切れ」エラーが発生します。これは何らかの理由でうまくいきました。

svn update --force /path/to/dir/or/file
14
Aaron Hall

私はいくつかのフォルダーで同じ問題を抱えていましたが、これが私がコミットしたことです。

1)[チーム同期]パースペクティブで、フォルダを右クリック> [上書きして更新]をクリックします。
2)フォルダをもう一度削除します
3)コミットして幸せになる

10
Rafael Xavier

ありがとうございました。これで解決しました。 svn update --force /ファイル名へのパス/

ローカルディレクトリの最近のファイルが同じ場合、プロンプトは表示されません。ファイルが異なる場合は、tf、mfなどを入力するように要求されます。

ジェイ・コンピュマター

5
Jay

更新ボタンを押すことで解決できました

5
Alvin567

@ Alexander-Klyubinが示唆しているように、リポジトリ内で移動してください。また、移動するデータが大量にある場合は特に、ネットワークを介してそのデータをすべて転送する必要がなくなるため、はるかに高速になります。

svn mv https://[email protected]/svn/old/ https://[email protected]/svn/new/

うまく動作するはずです

4
Aeon

ファイルまたはパスを削除してから、コマンドを実行して変更内容を確認してください。

Sudo rm -r /path/to/dir/

後:

svn up and commit or delete 
3
Clamorious

メッセージ "out of date"エラーの他の原因が少なくとも1つあります。私の場合、問題は "svn propset svn:ignore -F .gitignore"を実行することによって作成された.svn/dir-propsでした。初めてです。 .svn/dir-propsを削除するのは悪い考えのようであり、他のエラーを引き起こす可能性があるので、誤った "svn propset"をクリーンアップするために "svn propdel"を使うのが最善かもしれません。

# Normal state, works fine.
> svn commit -m"bump"  
Sending        eac_cpf.xsl
Transmitting file data .
Committed revision 509.

# Set a property, but forget to commit.
> svn propset svn:ignore -F .gitignore .
property 'svn:ignore' set on '.'

# Edit a file. Should have committed before the edit.
> svn commit -m"bump"                   
Sending        .
svn: Commit failed (details follow):
svn: File or directory '.' is out of date; try updating
svn: resource out of date; try updating

# Delete the property.
> svn propdel svn:ignore .              
property 'svn:ignore' deleted from '.'.

# Now the commit works fine.
> svn commit -m"bump"     
Sending        eac_cpf.xsl
Transmitting file data .
Committed revision 510.
2
infogizmo

Githubのsvnブリッジを使っているのであれば、github側で何かが変わったからでしょう。解決策は簡単で、あなたはsvn switchを実行するだけです、それはそれがそれ自身を正しく見つけてそれから更新し、そしてすべてがうまくいくでしょう。チェックアウトのルートから以下を実行するだけです。

svn info | grep Relative 
svn switch path_from_previous_command
svn update

または

svn switch `svn info | grep Relative | sed 's_.*: __'`
svn update

この解決法の基礎は Lee Preimesbergerのブログ から来ています。

2
Perkins

下位のリビジョンではなく、先頭をチェックアウトしたことを確認していますか?また、最新版を入手したことを確認するためにアップデートを行いましたか。

これについての議論は http://svn.haxx.se/users/archive-2007-01/0170.shtml にあります。

2
jgreep

リポジトリで直接移動を実行します。

2
Alexander

サーバーとクライアントをSubversion 1.9にアップグレードしてください。

Commitを実行するときにout of dateエラーが通常は発生しないはずのときにランダムに発生する場合は、時代遅れでサポートされていないSubversion 1.7またはそれ以前のクライアントまたはサーバを使用している可能性があります。

問題を解決するためにサーバおよびクライアントをアップグレードする必要があります。関連するSubversion 1.9リリースノートのエントリを参照してください。HTTPv1を介してコミットしたときの「古い」エラー

1
bahrep

エラーは、その特定のファイルを更新していないためです。最初に更新してから、そのファイルのみをコミットできます。

1
abhishek pant

svn mvを使用して移動していますか、それとも単にmvですか。 mvだけを使用すると、この問題が発生する可能性があります。

1
Ryan Bigg

私はこれをしました、そしてそれは私のために働きました:
1。ファイルのバックアップを取ってください。コードをテキストファイルにコピーするだけです。
2。コミットしたいファイルを右クリック>>チーム>>履歴の表示3. [履歴の表示]パネルにそのファイルのすべてのリビジョンが表示されます。最新のリビジョンのファイルを右クリック>>リビジョンの取得:ローカルの変更を上書きします。
4。さて、あなたのコードを最新のファイルとバックアップファイルとマージしてください(ステップ#1)。
5。新しくマージしたファイルを同期してコミットします。

1
Sameer Patel

それぞれがいくつかのファイルを含むいくつかのディレクトリを削除した後、私はランダムにこのエラーを受け取りました。私はNetbeansを通してディレクトリを削除しました、そしてそれが実際にそれらを削除しないことに気づきました。ディレクトリ内のすべてを削除し、Netbeans内のディレクトリへの参照を削除したようです。それらはまだファイルシステム上に存在していました。それらがファイルシステムから削除されていることを確認して、もう一度コミットを試みてください。

1
Bower

安全のためにディレクトリを自分のローカルマシンに移動した後、svnでバカディレクトリを削除してからコミットしました。私のローカルマシンからフォルダを追加しようとすると、それでもエラーが発生しました(フォルダの名前を変更しようとしたときにSVN移動でも同じことが行われました)。それで私は元に戻り、それから私はmkdir DIRNAMEをし、追加し、そしてコミットしました。それから私は内容を追加してコミットし、そしてそれはうまくいった。

1
Melissa

単純に新しい作業コピーをチェックアウトし、.svnディレクトリをこの新しくチェックアウトされたものでコミットエラーをスローすることで同様の問題を解決した場合。私の場合の理由は、リポジトリが破損してバックアップから復元した後、作業コピーが復元されたリポジトリには存在しないリビジョンを指していたからです。 「期限切れのアイテム」エラーもあります。コミット前に作業コピーを更新してもこれは解決されませんでしたが、上記のように.svnを置き換えました。

1
fileunderwater

直接.svnを除いてすべてを試みました。何も助けなかったので、ここに私の解決策があります。

Eclipse> Window> Show View> Historyファイルが最新のリビジョンではないことを確認しました。

だから私はパッケージエクスプローラ>ファイルを右クリック> リポジトリから最新のものに置き換えに行きました。

履歴ビューをもう一度見ると、ファイルが最新のリビジョンになっていることがわかりました。

1
katana0815

「クリーンアップ」それはあなたを軌道に乗せるでしょう。

Svnフォルダを右クリックして[クリーンアップ]をクリックします。エラーが発生した場合はこれを実行してください。

1

私の場合は、ローカルバージョンを削除して新しいコピーを再チェックアウトするだけでした。

0
Macilias

commitディレクトリからtrunkを取得しようとしていたときに、これが発生しました。 trunkディレクトリからsvn updateを実行してもエラーは解決しませんでした。ただし、親ディレクトリ(svn updateディレクトリが属する場所)から.svnを実行してもエラーは解決しました。

何が起こったのか私の推測(とりわけユースケース、この“ svn:E160024:リソースが古くなっています;更新してみてください”):trunkに加えて、branchesディレクトリがありました。私はGitHubからbranches/branch-1masterに引っ張りました。 trunkの代わりに親ディレクトリ(つまり、私の作業コピーのルート)からsvn updateを実行すると、branchesに加えてtrunkでも何かができたようです。もう一度commitを試みたときに、エラーはありませんでした。

しかし、前述したように、これはおそらく他の多くのケースの中の1つのケースです。

サイドノート:誰かが提案したものとは異なり、.svnディレクトリで手動で再生するのは得策ではないと思います。

0
Hibou57

私はいくつかのファイルをコミットしようとしたときに私はこのエラーを得た、それだけが私の作業コピーに存在していなかったファイル/フォルダでした。ファイルを移動して再チェックするという面倒なことはしたくありませんでした。結局、.svn/entriesファイルを編集して問題のあるディレクトリ参照を削除しました。

0
Al W

これは以前のリリースのブランチをトランクからのファイルで更新したときに起こりました。私はトランクのチェックアウトフォルダからfoldersをコピーするのにWindowsエクスプローラを使用し、それらをリリースブランチのチェックアウトフォルダの私のEclipseビューに貼り付けました。 Windowsエクスプローラは、「。」で始まる「隠しファイル」を表示しないように設定されていたので、すべての誤った.svnファイルが自分のリリースブランチのチェックアウトフォルダに貼り付けられることを知らなかった。やあ!

私の解決策は、破損したEclipseプロジェクトを一掃し、もう一度チェックアウトしてから、新しいファイルを慎重にコピーすることでした。私はまた、「隠しファイル」を表示するようにWindowsを変更しました。

0
Jim Ferrans

単にコマンドラインにSVNを入力するか、Windowsの場合はSVN更新オプションを選択してください。

  • これが行われれば、これはあなたがコミットや他の人のようなさらなる行動をとることを可能にします。
0
Indrajeet Gour

解決するには、問題のあるファイルを元に戻して作業コピーを更新する必要がありました。後でファイルを再度修正したところ、これらの手順を行ってもエラーは発生しなくなりました。

0
sandolkakos

私はちょうどこのエラーが出ました。私がお勧めするのは、最初のファイルがそこにあるかどうかあなたが最初にあなたのサーバーをチェックすることです。時にはあなたのローカルフォルダに変更が加えられないことがあります。このような場合は、フォルダを削除してからもう一度チェックアウトしてください。

0
brunch875