15


6

コンテキストは、私がカスタマイズしたい既製のCMSを持っているということです。ですから、私が変更したファイルをバージョン管理下に置きたいのですが、ファイルツリー全体をバージョン管理下に置く必要はないと思います。

私の問題は、いくつかのサブディレクトリの下にあるファイルをバージョン管理下に置く必要があるということですが、ファイルとその親フォルダ以外にリポジトリに何か他のものを追加したくはありません。

説明のために、プロジェクトに次のファイルがあるとします。

project / folder1 / folder2 / file.txt

file.txtをリポジトリに追加したいのですが、folder1はバージョン管理されていますが、folder2は管理されていません。 folder1とfolder2に既存のファイルがありますが、それらはすべてバージョン管理下に置きたくありません。

`svn import folder1 / folder2 / file.txt`を実行してもうまくいかないようです。その場合はファイルをチェックアウトする必要があります。最初にローカルバージョンを削除したとしても、SVNはその親フォルダが存在すると訴えます。 これは、 - forceオプションを使用すると、これらのフォルダーの内容が破壊されることを意味します。

`svn add folder1 / folder2 / file.txt`の問題は、各親フォルダがすでにリポジトリにあることを要求することです(私はfolder2 / .svn / entriesファイルを見つけることができないという事実から集める) folder1のみがリポジトリにあります。 それで、私は最初に `svn add folder1 / folder2`を実行できると考えました。 問題は、これがfolder2の内容全体をリポジトリに入れてしまうことです。 解決策はフォルダを追加して内容を追加しない `svn add --depth = empty folder1 / folder2`を実行することであると思われますが、--depthオプションはSubversion 1.5の新機能で、1.4を使用しています。 2、この時点でアップグレードを避けることをお勧めします。

Subversionの古いバージョンに—​depthオプションがないことを回避する方法はあるのでしょうか。 あるいは、この問題を解決する別の方法があります。「最初に設定する方法がそれほど役立たなかったかどうかも疑問に思います。

3 Answer


37


"--non-recursive"オプションを付けてフォルダを追加する必要があります。

svn add --non-recursive folder1 / folder2


25


クライアントのバージョンが1.5以上の場合は、単純に

svn add --parent folder1 / folder2 / file.txt

ファイルとその親ディレクトリを追加します。


16


クイックバージョンの "-N"を使用することもできます。これは、 " - non-recursive"の短縮形です。

svn add -N folder1 / folder2