Subversionでディレクトリ構造をある場所から別の場所に移動しようとしましたが、Item '*' is out of date
コミットエラーが発生します。
最新バージョンをチェックアウトしました(私が知る限り)。svn st -u
mvコマンド以外の違いはありません。
Subversionでディレクトリ構造をある場所から別の場所に移動しようとしましたが、Item '*' is out of date
コミットエラーが発生します。
最新バージョンをチェックアウトしました(私が知る限り)。svn st -u
mvコマンド以外の違いはありません。
回答:
WindowsでTortoiseSVNを使用してこれを取得することがあります。私にとっての解決策はsvn update
、ダウンロードまたは更新するリビジョンがない場合でも、ディレクトリです。メタデータに対して何かを行い、魔法のように修正します。
すべての明らかなこと、およびここでの他のいくつかの提案を試した後、まったく運がなかったため、Google検索がこのリンクにつながりました(リンクはもう機能していません)-Subversionによると:ファイルまたはディレクトリがおそらく古くなっています
簡単に言えば、トリックは.svnディレクトリ(問題のファイルが含まれているディレクトリ内)に移動し、「all-wcprops」ファイルを削除することです。
他に何もしなかったときに私のために働いた。
all-wcprops
内のファイル.sv
のディレクトリは
この問題は.svnファイルに起因していると思います。古い親、新しい親、古い親のいずれかが間違っています。元の状態に戻してみます。エクスポートを使用して、フォルダーのクリーンなコピーを取得します。クリーンコピーを新しい場所に移動し、追加と削除を使用して移動します。これはSVNが行うことを手動で行っていますが、機能する場合があります。
下位リビジョンではなく、ヘッドをチェックアウトしましたか?また、最新バージョンを確実に入手するために更新を行っていますか?
これについての議論があります http://svn.haxx.se/users/archive-2007-01/0170.shtml。
「期限切れ」というエラーメッセージの原因は他にも少なくとも1つあります。私の場合、問題は「svn propset svn:ignore -F .gitignore」を実行して作成された.svn / dir-propsでした。初めて。.svn / dir-propsを削除することは悪い考えのようであり、他のエラーを引き起こす可能性があるため、「svn propdel」を使用して誤った「svn propset」をクリーンアップするのが最善の場合があります。
# 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のブログにあります
安全のためにdirをローカルマシンに移動し、svnが愚かなディレクトリを削除してコミットしました。ローカルマシンからフォルダを追加しようとしたときに、エラーが発生しました(SVN移動は、フォルダの名前を変更しようとしたときに同じことを行いました)。それで私は元に戻し、それからmkdir DIRNAMEを行い、追加してコミットしました。次に、コンテンツを追加してコミットしましたが、うまくいきました。
サーバーとクライアントをSubversion 1.9にアップグレードします。
out of date
通常は発生しないはずのエラーがランダムに発生する場合、コミットを実行すると、サポートされていない古いSubversion 1.7以前のクライアントまたはサーバーを使用している可能性があります。
この問題を解決するには、サーバーとクライアントをアップグレードする必要があります。関連するSubversion 1.9リリースノートのエントリを参照してください:HTTPv1を介してコミットする際の「期限切れ」エラー。
これは、以前のリリースのブランチをトランクのファイルで更新したときに発生しました。Windowsエクスプローラーを使用して、トランクのチェックアウトフォルダーからフォルダーをコピーし、リリースブランチのチェックアウトフォルダーのEclipseビューに貼り付けました。現在、Windowsエクスプローラーは、「。」で始まる「非表示」ファイルを表示しないように構成されているため、リリースブランチのチェックアウトフォルダーに貼り付けられているすべての不正な.svnファイルに気づいていませんでした。どー!
私の解決策は、破損したEclipseプロジェクトを吹き飛ばし、再度チェックアウトして、新しいファイルをより注意深くコピーすることでした。「隠し」ファイルを表示するようにWindowsを変更しました。
解決するには、問題のあるファイルを元に戻して作業コピーを更新する必要があり、後でファイルを再度変更したところ、これらの手順を実行してもエラーは発生しなくなりました。
コマンドラインでsvn upを実行するか、Windowsの場合はsvn updateオプションを選択します。
ディレクトリcommit
から取得しようとしたときに取得しましたtrunk
。やってsvn update
からtrunk
ディレクトリとするとエラーが解決しませんでした。ただし、svn update
親ディレクトリ(.svn
ディレクトリが属する場所)から実行すると、エラーは解決しました。
何が起こったかについての私の推測(とりわけユースケース、これには「svn:E160024:リソースが古くなっています。更新してみてください」):に沿ってtrunk
、branches
ディレクトリがありました。GitHubからをプルしbranches/branch-1
ましmaster
た。のsvn update
代わりに親ディレクトリ(つまり、私の作業コピーのルート)trunk
から実行するとbranches
、何かに加えて何かが行われたようtrunk
です。commit
再試行してもエラーはありませんでした。
ただし、前述したように、これはおそらく他の多くのケースの1つです。
補足:誰かが提案したものとは異なり、手動で.svn
ディレクトリを再生することはお勧めしません。