2009-08-09 1 views
1

コマンドラインからリポジトリ内のディレクトリを削除したいとします。同時に、私はSubversionにこの変更をローカルの作業コピーに伝達したくありません。SVNリポジトリ内のディレクトリを削除し、同時にそれをsvn:ignoreに設定するにはどうしたらいいですか?

作業コピーのディレクトリはそのままです(悲しい、私はsvn:ignoreプロパティを設定したい)。とにかく、作業コピーに削除が伝播されない限り、これを達成する方法を見つけられませんでした。

答えて

1

私が知る限り、これは不可能です。ファイルが実際にバージョン管理されると、svn:ignoreは何もしません。

人々は地元の変更を保つことができるので、これはやや危険です。彼らが注意を払っていない場合、彼らはそれらを失う可能性があります。

+0

危険ではありません。 Subversionは警告なしでローカルの変更を捨てることはありません。更新プログラムによってローカルに変更されたフォルダーが削除された場合、ツリーの競合が発生するはずです。 –

+0

それは私が思っていた、私がそうしないまで。私はそれが間違いなく台無しになるのではない、しかし注意してください。ちょうど2日前に、TortoiseSVNは、ディレクトリを移動したので、まだコミットされていない、新しく追加されたファイルが「消えました」。 – Thorarin

1

Thorarinと同様に、削除コマンドはsvn:ignoreプロパティに関係なく伝達されるため、これは可能ではないようです。

代わりに削除の

、より安全な移行は、SVNを追加しdir.oldのようなものに(に問題のあるディレクトリの名前を変更し、に次のようになります。元のディレクトリ名を無視するあなたは、手動でそのディレクトリをコピーする人々に伝えることができ

このディレクトリ内のファイルの種類によっては、開発者が変更を同期させる場所として永久に保存することもできます。直接使用されないように、dir.tmplのようなものを呼び出すことでテンプレートディレクトリであることを明確にすることができます。

0

ここで別のものに盗まれた答えquestion(ありがとうMaciej Łebkowski!):

私の経験から、そのファイルをバージョン管理下に置き、svn:ignoreを使用しないでください。

バージョン管理下にあるファイルを無視することはできず、ハードドライブからファイルを削除せずにバージョン管理からファイルを削除することはできません(次の更新時にはすべての作業コピーから削除できません) ...)。しかし、最終的にリポジトリを正しく設定すると、それは魅力的に機能します。オリジナルの設定ファイルの代わりに汎用テンプレートを追加することを忘れないでください(誰もが新しい設定変数などを知っていることになります)。新しいレポのために

:既存のレポのために '* .confの' コンフィグ

を無視:あなたのバックアップを持っているために、必ず

は、mkdir設定
のsvnは、SVN propset SVN設定
を追加設定をすべての作業コピーに保存してから、リポジトリからconfig(svn del)を削除してコミットしてください(注意:ファイルは次回の更新時にすべての作業コピーで削除されますのでバックアップが必要です) ignoreプロパティ。

もう1つの方法はロックです。誰もファイルをコミットしないことを保証しますが、コミットするたびにエラーが発生します。とても素敵ではありません。

そして3番目の方法 - チェンジセット、SVN 1.5クライアントの新機能。これはきちんとしていますが、1つの作業コピーにのみ関連し、リポジトリにはグローバルには関連しません。手動で設定し、新しいファイルを追加する必要があります。維持するのは難しいです。

関連する問題