最近使用SVN命令行提交项目时,发现目前没有工具可以做到像TortoiseSVN一样选择那些提交那些不提交的。因为有一些文件是本地编辑仅仅供自己测试来用的,或者是其他feature或者bug的修改,不想一起提交掉。 而且这些文件已经在SVN提交范围内,不能SVN ignore掉。而使用SVN changelist又太麻烦,每次都要一堆操作。于是自己写了一个脚本,模拟SVN commit,只需要在不需要提交的文件前用’#’注释掉即可。
#!/bin/bash
echo -e "\n--This line, and those below, will be ignored--\n" > svn-commit.tmp
svn status | grep "^[A|D|M].*" >> svn-commit.tmp
vim svn-commit.tmp
comment="$(head -1 svn-commit.tmp)"
svn ci -m "$comment" `tail -n +4 svn-commit.tmp | grep -v "^#.*" | awk '{print $2}' | tr "\\n" " "`
rm -f svn-commit.tmp
不过目前脚本不支持全部注释掉,我认为没有这个需求,如果以后有需求再加上。