web-dev-qa-db-ja.com

Subversionステータスシンボル「〜」はどういう意味ですか?

svn statusを実行すると、チルダ記号が表示されます。

XCodeで編集した後のプロジェクトの出力は次のとおりです。

svn status
M      build/Currency_Converter.build/Currency_Converter.pbxindex/imports.pbxbtree
M      build/Currency_Converter.build/Currency_Converter.pbxindex/pbxindex.header
M      build/Currency_Converter.build/Currency_Converter.pbxindex/symbols0.pbxsymbols
~      build/Currency_Converter.build/Currency_Converter.pbxindex/strings.pbxstrings
M      main.m
//more changed files

それが何を意味するのか考えていますか?グーグルやSVNチートシートのいずれかでそれを見つけることができないようです。

興味深いことに、私はmain.mのみを編集しましたが、多くの変更されたファイルがあります。ダンノSVNとXCodeを操作するためのヒントはありますか?ソースファイルのみをバージョン管理下に置くべきですか?

編集:-バージョン管理下にあるファイルが別のタイプのファイルに置き換えられたことが原因です。この場合、strings.pbxstringsは以前はファイルでしたが、現在はディレクトリになりました。ストーリーの教訓は、ビルドフォルダーをバージョン管理に入れないことです。

109
jergason

SVN Book の意味:

アイテムは1種類のオブジェクト(ファイル、ディレクトリ、リンク)としてバージョン管理されていますが、別の種類のオブジェクトに置き換えられています。

おそらく元々は単一のファイルでしたが、それをディレクトリに変更したのでしょうか、それともそれらの行に沿ったものですか?

88
Chad Birch

ここに私がやったことがあります:

フォルダーがテストの場合

  1. mvテストTest1
  2. svn removeテスト
  3. mv Test1テスト
34
Tuong Le

から

svn help status

異なる種類のアイテムによって妨害された「〜」バージョン管理されたアイテム

これは、ファイルのアクセス許可が変更され、svnに実行アクセス権がなかった場合にのみ表示されます。

お役に立てれば。

15
user83632

これを修正する最も簡単な方法は、バックアップしてから、このステータスのフォルダーまたはファイルを削除してから「svn up」を実行することです。これは必ずしもファイルによって置き換えられたフォルダーであるとは限りません。 。

12
deadprogrammer
svn delete --keep-local x
svn commit -m "del x"
svn add x
svn commit -m "blah"
11
sancelot

これは、フォルダー内の.svnフォルダーを削除した場合(たとえば、ディレクトリを削除してから同じディレクトリを再度作成した場合)、またはディレクトリをシンボリックリンクまたは同じ名前のファイルで置き換えた場合に発生する可能性があります。

それがa-folderというフォルダーであると仮定すると、親フォルダーで次のコマンドを発行することでこれを修正できます。

$ find a-folder -type d -name '.svn' -print0 | xargs -0 rm -Rf
$ svn up --force .
svn: Directory 'logs/.svn' containing working copy admin area is missing
$ svn up --force .
E    a-folder
...
Updated to revision n.

そして、それはsvnの追加/削除と変更のコミットの問題です

10

同様の問題があった場合、SVNはロックについて苦情を言っていました。これが私たちのしたことです:

  • ファイルをバックアップしました
  • 問題のディレクトリをrm -r(Linux)で削除しました
  • Ran svn cleanupディレクトリで
  • Ran svn up --forceディレクトリで
3
M.W. Felker

これは、Joomlaに拡張機能をインストールするときに頻繁に発生する問題であることを共有したいと思います。拡張機能はCMSを介してインストールされ、グループ書き込みなしでApacheによって所有されます。通常、次のステップはSVNにファイルを追加することですが、Sudoを実行しないか、ファイルのパーマを変更しないと、.svnディレクトリを書き込めないときにSVNが失敗します。これが簡単な解決策です。

mv foo foo-bak
svn up foo
svn revert foo

# just for good measure. Foo should not show up in the two following commands.
ls | grep foo
svn st | grep foo

mv foo-bak foo
svn add foo
3
Collin James

(たとえば)Joomla!、WordpressまたはDrupal。)でモジュールをアップグレードしているときによくありました。アップグレードプロセスによって.svnディレクトリが削除されることがあります。

# rename updated directory
mv foo foo.new

# restore the old directory
svn up foo

# merge / update the old directory with new items
# notice that the above command will preserve the obsolete files
# so you should do a diff -r in order to remove them
cp -r foo.new/* foo

# Add files commit, etc
svn add foo/*
svn delete foo/xx
svn commit -m "updated module"
2
Marc Druilhe

Windowsでのシンボリックリンクの問題かもしれません。シンボリックリンクをSVNにコミットし、Windowsでチェックアウトすると、リンクは通常のファイルに変更され、これも〜として報告されます。

2
zbyszanna
~ versioned item obstructed by some item of a different kind
    Second column: Modifications of a file's or directory's properties
0
Nanhe Kumar