SVN:フォルダーは既にバージョン管理下にありますが、コミットしていませんか?


111
mark@mark-ubuntu:~/myproject$ svn stat
?       runserver.sh
?       media/images/icons
?       apps/autocomplete
mark@mark-ubuntu:~/myproject$ svn add apps/autocomplete
svn: warning: 'apps/autocomplete' is already under version control

svn statバージョン管理下にないというので、私はそれを追加しようとすると、それがそうであることを私に伝えます。を実行svn ciしてもコミットされず、オンラインでリポジトリを参照しようとしても表示されません。

どうすればコミットできますか?


3
「オートコンプリート」フォルダには、壊れた「.svn」サブディレクトリが含まれていますか?また、片付けはしましたか?:)
bzlm

1
あなたは試したことがありますか:svn cleanup、a stab in a dark?
shaunhusain

チェックインしたディレクトリをプロジェクトの別のフォルダーにコピーしたときに、この問題が発生しました。古い.svnを削除するとうまくいきます!
ポールレクグラー2013年

ファイルを強制的に追加しました:svn add --force /path/to/file、またはディレクトリを再帰的に追加する場合:svn add --depth infinity --force /path/to/directory
ジョーカー2017

回答:


162

問題のあるフォルダをバックアップディレクトリにコピーし、SVN作業ディレクトリから削除します。.svnコピーしたフォルダからすべての隠しディレクトリを削除することを忘れないでください。

次に、プロジェクトを更新し、クリーンアップして、残っているものをコミットします。次に、フォルダを作業ディレクトリに戻し、追加してコミットします。ほとんどの場合、この回避策は機能しますが、基本的にSVNが混乱しているようです...

更新:@Markによるコメントの引用:

フォルダーを移動する必要はありませんでした。.svnフォルダーを削除し、svn-addingを実行するだけです。


52
フォルダーを移動する必要はありませんでした。.svnフォルダーを削除し、svn-addingを実行するだけです。
mpen 2011

6
私の一日を作るための+1 ;-)マークが言ったように、私にとっては問題のあるフォルダ内の.svnディレクトリを削除するだけで十分でした。
rturrado 2011

23
SVNを完全なBSとして識別していただきありがとうございます。
スティーブK

1
トップフォルダーに.svnしかないため、このBSを実行できません。メタデータが破損している場合は、トーストです
Kalpesh Soni

既にコミットされている場合は、リストから親フォルダー(apps / autocomplete)のチェックを外します
khaled_webdev

20

(ソース環境ではsvn:externalだったため).svnディレクトリを含むディレクトリツリーを追加した後、似たような問題が発生しました:svn statusで「?」バージョン管理下」。

他のバージョン化されたディレクトリが存在しなかったので、私はしました

find . -mindepth 2 -name '.svn' -exec rm -rf '{}' \;

間違った.svnディレクトリを削除する; これを実行した後、新しいディレクトリを追加することができました。

  • 他のバージョンのディレクトリが含まれている場合、検索式をより具体的になるように変更する必要があります
  • 不明な場合は、最初に「-exec ...」の部分を省略して、何が削除されるかを確認します。

この答えはうまくいきましたが、初めて使用したとき、私は間違ったフォルダにいて、物事をかなり混乱させました。これを実行する前に、詳細を再確認して、「2回測定し、1回カットする」ことを人々に思い出させるのに適した場所のようです。
BishopZ 2013

... -exec echo {} \;-execスイッチがうまく機能するように、「不明な場合」をお勧めし ます。
FlipMcF、2015

-type d検索にを追加することもお勧めします。あなたrm -rfが少し行き過ぎるまで私をうるさく呼んでください。私の一口以外-これは正解だと思います。
FlipMcF、2015

15

@ gauss256の答えのバリエーション、削除.svn、が私のために働きました:

rm -rf troublesome_folder/.svn
svn add troublesome_folder
svn commit

ガウスのソリューションの前に、@ jwir3のアプローチを試してみましたが、喜びはありませんでした。

svn cleanup
svn cleanup *
svn cleanup troublesome_folder
svn add --force troublesome_folder
svn commit

14

(1)これは私に起こったばかりで、どうやって起こったの興味深いと思いました。基本的に私はフォルダーを新しい場所にコピーして変更しましたが、すべての非表示の.svnディレクトリーをもたらすことを忘れていました。それがどのように発生するかを理解すると、将来回避するのが簡単になります。

(2).svnディレクトリを削除することが解決策ですが、ディレクトリツリーの至る所まで再帰的に削除する必要があります。これを行う最も簡単な方法は次のとおりです。

find troublesome_folder -name .svn -exec rm -rf {} \;

3

SVNクリーンアップを実行してみましたか?


2
Iveもこの問題に遭遇しました。その後試してみましたがsvn cleanup、役に立ちませんでした。
imacake

3

ディレクトリ「apps / autocomplete / .svn」を確認してください。安全な場所に移動し(これが機能しなかったために復元する必要がある場合)、問題が解決するかどうかを確認します。


0

SVNクライアントJavaHL(JNI)1.8.13とTortoiseでEclipse(Luna)をインストールした場合の解決策を見つけました:

Eclipseを開きます。まず、プロジェクト/ mavenモジュールをバージョン管理に追加してみます(プロジェクト->コンテキストメニュー->チーム->バージョン管理に追加)。

次のEclipseエラーメッセージが表示されます。

org.apache.subversion.javahl.ClientException:エントリはすでに存在しますsvn: 'PathToYouProject'はすでにバージョン管理下にあります

その後、エクスプローラーでワークスペースディレクトリを開き、プロジェクトを選択してTortoiseで解決します(プロジェクト->コンテキストメニュー-> TortoiseSVN->解決)。

次のメッセージダイアログが表示されます。「ファイルリストが空です

キャンセルを押して、Eclipseでプロジェクトを更新します。プロジェクトは再びバージョン管理下に置かれるはずです。

残念ながら、同時に複数のプロジェクトを解決することはできません...何も削除する必要はありませんが、プロジェクトのサイズによっては、少し面倒な場合があります。


0

私にとっては、svn updateを実行し、続いてsvn commitが機能しました。追加に失敗したフォルダに.svnフォルダがありませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.