Subversionでディレクトリ構造をある場所から別の場所に移動しようとしましたが、Item '*' is out of date
コミットエラーが発生しました。
私は(私が言うことができる限りで)最新バージョンをチェックアウトしています。 svn st -u
は、mvコマンド以外に違いはありません。
私は時々TortoiseSVNでこれを手に入れます。私にとっての解決策は、ダウンロードや更新のためのリビジョンがないにもかかわらず、ディレクトリをsvn update
することです。それはメタデータに何かをし、それはそれを魔法のように修正します。
すべての明白なことを試した後、ここで他の提案をいくつか試してみても、何の問題もなく、Googleの検索でこのリンクにつながった(リンクが機能しなくなった) - 時代遅れ
一言で言えば、トリックは.svnディレクトリ(問題のあるファイルを含むディレクトリ内)に移動し、 "all-wcprops"ファイルを削除することです。
他に何もしなかったとき私のために働きました。
私はこの問題が.svnファイルから来ていると思います。それは、古い親、新しい親、または古い親のいずれかでは正しくありません。出発点に戻りましょう。エクスポートを使用して、フォルダの新しいコピーを取得してください。クリーンコピーを新しい場所に移動し、追加と削除を使用して移動します。それは手動でSVNがすることをしています、しかしそれはうまくいくかもしれません。
私はこれが私のために働くことがわかりました:
svn update
svn resolved <dir>
svn commit
ローカルコピーを更新しようとし、問題のアイテムを元に戻しても、「期限切れ」エラーが発生します。これは何らかの理由でうまくいきました。
svn update --force /path/to/dir/or/file
私はいくつかのフォルダーで同じ問題を抱えていましたが、これが私がコミットしたことです。
1)[チーム同期]パースペクティブで、フォルダを右クリック> [上書きして更新]をクリックします。
2)フォルダをもう一度削除します
3)コミットして幸せになる
ありがとうございました。これで解決しました。 svn update --force /ファイル名へのパス/
ローカルディレクトリの最近のファイルが同じ場合、プロンプトは表示されません。ファイルが異なる場合は、tf、mfなどを入力するように要求されます。
ジェイ・コンピュマター
更新ボタンを押すことで解決できました
@ Alexander-Klyubinが示唆しているように、リポジトリ内で移動してください。また、移動するデータが大量にある場合は特に、ネットワークを介してそのデータをすべて転送する必要がなくなるため、はるかに高速になります。
svn mv https://username@server/svn/old/ https://username@server/svn/new/
うまく動作するはずです
ファイルまたはパスを削除してから、コマンドを実行して変更内容を確認してください。
Sudo rm -r /path/to/dir/
後:
svn up and commit or delete
メッセージ "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.
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のブログ から来ています。
下位のリビジョンではなく、先頭をチェックアウトしたことを確認していますか?また、最新版を入手したことを確認するためにアップデートを行いましたか。
これについての議論は http://svn.haxx.se/users/archive-2007-01/0170.shtml にあります。
リポジトリで直接移動を実行します。
サーバーとクライアントをSubversion 1.9にアップグレードしてください。
Commitを実行するときにout of date
エラーが通常は発生しないはずのときにランダムに発生する場合は、時代遅れでサポートされていないSubversion 1.7またはそれ以前のクライアントまたはサーバを使用している可能性があります。
問題を解決するためにサーバおよびクライアントをアップグレードする必要があります。関連するSubversion 1.9リリースノートのエントリを参照してください。HTTPv1を介してコミットしたときの「古い」エラー。
エラーは、その特定のファイルを更新していないためです。最初に更新してから、そのファイルのみをコミットできます。
svn mv
を使用して移動していますか、それとも単にmv
ですか。 mv
だけを使用すると、この問題が発生する可能性があります。
私はこれをしました、そしてそれは私のために働きました:
1。ファイルのバックアップを取ってください。コードをテキストファイルにコピーするだけです。
2。コミットしたいファイルを右クリック>>チーム>>履歴の表示3. [履歴の表示]パネルにそのファイルのすべてのリビジョンが表示されます。最新のリビジョンのファイルを右クリック>>リビジョンの取得:ローカルの変更を上書きします。
4。さて、あなたのコードを最新のファイルとバックアップファイルとマージしてください(ステップ#1)。
5。新しくマージしたファイルを同期してコミットします。
それぞれがいくつかのファイルを含むいくつかのディレクトリを削除した後、私はランダムにこのエラーを受け取りました。私はNetbeansを通してディレクトリを削除しました、そしてそれが実際にそれらを削除しないことに気づきました。ディレクトリ内のすべてを削除し、Netbeans内のディレクトリへの参照を削除したようです。それらはまだファイルシステム上に存在していました。それらがファイルシステムから削除されていることを確認して、もう一度コミットを試みてください。
安全のためにディレクトリを自分のローカルマシンに移動した後、svnでバカディレクトリを削除してからコミットしました。私のローカルマシンからフォルダを追加しようとすると、それでもエラーが発生しました(フォルダの名前を変更しようとしたときにSVN移動でも同じことが行われました)。それで私は元に戻り、それから私はmkdir DIRNAMEをし、追加し、そしてコミットしました。それから私は内容を追加してコミットし、そしてそれはうまくいった。
単純に新しい作業コピーをチェックアウトし、.svnディレクトリをこの新しくチェックアウトされたものでコミットエラーをスローすることで同様の問題を解決した場合。私の場合の理由は、リポジトリが破損してバックアップから復元した後、作業コピーが復元されたリポジトリには存在しないリビジョンを指していたからです。 「期限切れのアイテム」エラーもあります。コミット前に作業コピーを更新してもこれは解決されませんでしたが、上記のように.svnを置き換えました。
直接.svnを除いてすべてを試みました。何も助けなかったので、ここに私の解決策があります。
Eclipse> Window> Show View> Historyファイルが最新のリビジョンではないことを確認しました。
だから私はパッケージエクスプローラ>ファイルを右クリック> リポジトリから最新のものに置き換えに行きました。
履歴ビューをもう一度見ると、ファイルが最新のリビジョンになっていることがわかりました。
「クリーンアップ」それはあなたを軌道に乗せるでしょう。
Svnフォルダを右クリックして[クリーンアップ]をクリックします。エラーが発生した場合はこれを実行してください。
私の場合は、ローカルバージョンを削除して新しいコピーを再チェックアウトするだけでした。
commit
ディレクトリからtrunk
を取得しようとしていたときに、これが発生しました。 trunk
ディレクトリからsvn update
を実行してもエラーは解決しませんでした。ただし、親ディレクトリ(svn update
ディレクトリが属する場所)から.svn
を実行してもエラーは解決しました。
何が起こったのか私の推測(とりわけユースケース、この“ svn:E160024:リソースが古くなっています;更新してみてください”):trunk
に加えて、branches
ディレクトリがありました。私はGitHubからbranches/branch-1
をmaster
に引っ張りました。 trunk
の代わりに親ディレクトリ(つまり、私の作業コピーのルート)からsvn update
を実行すると、branches
に加えてtrunk
でも何かができたようです。もう一度commit
を試みたときに、エラーはありませんでした。
しかし、前述したように、これはおそらく他の多くのケースの中の1つのケースです。
サイドノート:誰かが提案したものとは異なり、.svn
ディレクトリで手動で再生するのは得策ではないと思います。
私はいくつかのファイルをコミットしようとしたときに私はこのエラーを得た、それだけが私の作業コピーに存在していなかったファイル/フォルダでした。ファイルを移動して再チェックするという面倒なことはしたくありませんでした。結局、.svn/entriesファイルを編集して問題のあるディレクトリ参照を削除しました。
これは以前のリリースのブランチをトランクからのファイルで更新したときに起こりました。私はトランクのチェックアウトフォルダからfoldersをコピーするのにWindowsエクスプローラを使用し、それらをリリースブランチのチェックアウトフォルダの私のEclipseビューに貼り付けました。 Windowsエクスプローラは、「。」で始まる「隠しファイル」を表示しないように設定されていたので、すべての誤った.svnファイルが自分のリリースブランチのチェックアウトフォルダに貼り付けられることを知らなかった。やあ!
私の解決策は、破損したEclipseプロジェクトを一掃し、もう一度チェックアウトしてから、新しいファイルを慎重にコピーすることでした。私はまた、「隠しファイル」を表示するようにWindowsを変更しました。
単にコマンドラインにSVNを入力するか、Windowsの場合はSVN更新オプションを選択してください。
解決するには、問題のあるファイルを元に戻して作業コピーを更新する必要がありました。後でファイルを再度修正したところ、これらの手順を行ってもエラーは発生しなくなりました。
私はちょうどこのエラーが出ました。私がお勧めするのは、最初のファイルがそこにあるかどうかあなたが最初にあなたのサーバーをチェックすることです。時にはあなたのローカルフォルダに変更が加えられないことがあります。このような場合は、フォルダを削除してからもう一度チェックアウトしてください。