2012-03-07 278 views
0

開発のためにSubversionに新しいエントリを作成しようとしています。これは、すでにSubversionに存在するプロジェクトに基づいています。私はそのバージョンに基づいていないと思っています。これは参照用であり変更できないためです。SVN追加エラー - 作業コピーではありません

sts/eclipseでsubclipseを使用してエクスポートしようとしました。しかし、トップレベルのプロジェクトをsts/eclipseにインポートすると、プロジェクトの構造は保持されません。

sts/eclipseプロジェクトの構造は、チェックアウト時にに保存されます。だから私は別のディレクトリパスにプロジェクトをチェックアウトした。次に、cywinのコマンドラインを使って、 "find.-name" .svn "-execrm-rf {} \;を付けてプロジェクトからすべての.svnエントリを再帰的に削除しました。

しかし、私が新しいプロジェクトをSubversionに追加しようとすると、最上位ディレクトリの "SVNエラー - 作業コピーではありません"が表示されます。

私は/ googlingをチェックしていましたが、このエラーはディレクトリに.svnファイルがない場合に発生します。だから、何とかSubversionはすべての.svnディレクトリを削除してもこのプロジェクトを認識しています。レベルを上げると、私はstの "workspace"に入り、そのレベルの.svnエントリがあります(私は信じません)。

なぜ私はすべてのタグを削除した後もSubversionプロジェクトはまだSubversionプロジェクトだと思いますか?このチェックアウトされたディレクトリをSubversionへの新しいエントリとして追加するにはどうすればよいですか? Cygwinのコマンドラインから

答えて

1

私は、これはあなたが探しているものだと思います

  1. svn exportのorignalプロジェクトのローカルフォルダに(svn exportsvn checkoutのようですが、それはすべて作成されません.svnフォルダ)。
  2. svn addおよびsvn commitそのフォルダを破壊する。

ここ、上記のようにまったく同じを実現する別の方法ですが、それは高速です:

  1. svn branch元のプロジェクトの新しい場所(ディレクトリ)へ。これにより、元のプロジェクト(ディレクトリ)のコピーがリポジトリに作成されます。
  2. svn checkoutローカルディレクトリへの分岐。あなたが唯一の今から新しいものに取り組むとしているので、元のディレクトリのローカルコピーを保持したくない場合は

さて、これはそれを行うための最速方法は次のとおりです。

  1. svn branch新しい場所(ディレクトリ)に元のプロジェクト。これにより、元のプロジェクト(ディレクトリ)のコピーがリポジトリに作成されます。
  2. svn switch元のプロジェクト(ディレクトリ)の新しいブランチへのローカルコピー。
+0

最初の解決策では、どのように.svnフォルダなしで追加できますか? –

+0

ありがとうございます。私がsubclipseで持っていた問題は、exportコマンドがプロジェクトディレクトリ構造を保持していないことです。 subclipse checkoutコマンドは、それを保存するための何らかのオプションを提供します。 cygwinのsvnクライアントで同じ問題が発生するかどうかは分かりますか? –

+0

私はsvnブランチの考えが好きです。チェックアウトはプロジェクト構造を保存します。 –

0

おそらくコミットされていない変更があります。たとえば、svn(コミットされていない)にいくつかのdir /ファイルを追加して誤って削除したとします。 SVN::(詳細は従って)失敗したコミット: のsvn:ディレクトリ「XXX」何か変更がある場合は不足しているコミットされていないファイルがあるなら、あなたのようなエラーが出ます参照するには

使用「のsvn ciは」コマンドがない場合

変更を元に戻すには、「svn revert」を使用します。

その後、今すぐ 'svn add'と 'svn ci'をやり直すことができます。

関連する問題