SVN-ワンショットで複数のファイルをコミットする方法


104

以下のように、1つのショットで複数のファイルを異なるディレクトリにコミットしようとしましたが、

svn commit –m”log msg” mydir/dir1/file1.c mydir/dir2/myfile1.h mydir/dir3/myfile3.c etc etc

それ以来、一部のファイルをコミットリストから除外したかったので、上記のように各ファイル名をコマンドラインに配置しました。それをメモ帳にまとめると、約25個のファイルができました。コマンドラインにコピーして貼り付けると、最後のいくつかのファイルが欠落しており、これはコマンドラインバッファーの制限(?)の可能性があります。バッファの長さを増やすことができるオプションはありますか?

すべてのファイルをテキストファイルに入れて、svn commitの引数として指定できるオプションはありますか?


8
@Thi-転覆のためにGUIを使用しない人はマゾヒストです。Tortoise SVNまたはLinux相当のものを入手してください。
tpow

1
バッファの長さに制限がある場合、それはSVNではなく、使用しているシェルにあります。
Colin Fine

20
@cinquTimo:すべてにGUIを使用することをお勧めします。他の人はしません。
Colin Fine

@Colin、そう思う、その場合にシェルバッファー長を増やす方法は?
ティ

3
「転覆のためにGUIを使用しないのはマゾヒストです。」-マゾヒズムは転覆を使用することですが、私たちの中には選択の余地のない人もいます。
Daniel

回答:


157

svn changelistを使用して、一緒にコミットする一連のファイルを追跡できます。

リンク先のページには多くの詳細がありますが、エグゼクティブサマリーの例を次に示します。

$ svn changelist my-changelist mydir/dir1/file1.c mydir/dir2/myfile1.h
$ svn changelist my-changelist mydir/dir3/myfile3.c etc.
... (add all the files you want to commit together at your own rate)
$ svn commit -m"log msg" --changelist my-changelist

30

--targets ARGオプションを使用できます。ARGは、コミットのターゲットを含むテキストファイルの名前です。

svn ci --targets myfiles.txt -m "another commit"

このbashコマンドで私のためにfind . -name \*my.mask | xargs svn ci -m"message" --targets -
働き

28

私はこのようないくつかのファイルをコミットする問題はありませんでした:

svn commit fileDir1/ fileDir2/ -m "updated!"

これは私のために働いていません。エラー「svn: '/' is not a working copy」が発生します。ここに私は私の質問を投稿しました、あなたは見ることができます。 askubuntu.com/questions/442742/how-to-update-dir-on-svn-server/...

はい、うまくいきました。また、私のドキュメントルート内では、次のようにして作業コピーのツリー構造内のすべての変更をコミットできます。> svn commit。-m 'mass commit message'
Grigoreas P.

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