How commit all files except one with SVN

百般思念 提交于 2019-12-02 23:55:41

Option 1, AWK:

svn ci -m "Commit 1" `svn st | awk '{print $NF}' | grep -v file4`
svn ci -m "Commit 2" file4

Option 2, --targets:

svn ci -m "Commit 1" --targets filesToCommit.txt
svn ci -m "Commit 2" file4

Option 3, --changelist:

svn changelist my-changelist file1 file2 file3
svn ci -m "Commit 1" --changelist my-changelist
svn ci -m "Commit 2" file4

You can do it like this:

svn diff file4 > tmp.patch
svn revert file4
svn ci -m "Commit 1"
svn patch tmp.patch

At this point all files are commited except file4

Commiting all except one using changelists:

svn changelist my-list -R .
svn changelist --remove file4
svn ci -m "Commit 1" --changelist my-list
svn ci -m "Commit 2" file4

You can somewhat improve on your approach by adding your files with a script to a change list and committing it. You can inspect the list to make sure that it contains the right items before committing.

See svn changelist --help and --changelist option in svn ci --help.

Although I'm sure you could work out a solution like you propose using a more complex awk command line, since we're talking about just one file, why not

  1. Copy the file to a temporary location
  2. svn revert the modified file to get the original back
  3. Commit the whole repository
  4. Copy the modified file back

Simple, easy, fast.

Just commit filtered list of files.

svn ci `ls | grep -v file4`
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!