如何在命令行通过SVN命令筛选出修改过的文件并递交
问题:
如果一个目录中的文件过多,并且我们并不知道每个文件在SVN下的状态,这时如果我们只是要递交修改过的文件?
思路:
1,查看所有文件的状态
2,通过文件状态筛选出状态为“M”(修改)的文件
3,递交
解决办法:
1,输入命令:$svn st
查看所有文件的状态,比如:
guizhigngdemini:proj.ios guizhigang$ svn st
M channels/91/src/AppController.mm
M channels/91/src/dota_91.plist
M channels/i4/src/AppController.mm
M channels/itools/src/AppController.mm
M channels/itools/src/dota_itools.plist
M channels/ky/src/AppController.mm
M channels/pp/src/AppController.mm
M channels/tb/src/AppController.mm
M channels/xy/src/AppController.mm
M dota.xcodeproj/project.pbxproj
? dota.xcodeproj/xcshareddata/xcdebugger
可以看出我的环境下的输出结果
2,输入命令:$svn st | grep "M" | cut -c 8->modified.txt
以上命令将会把状态为M的文件筛选出来存入modified.txt文件,可以打开此文件查看是不是正确的。
3,只将modified.txt中记录的文件递交到SVN服务器
输入命令:svn ci -m "add buyGoods fun to every channel" --targets modified.txt
比如:
guizhigngdemini:proj.ios guizhigang$ svn ci -m "add buyGoods fun to every channel" --targets modified.txt
Sending channels/91/src/AppController.mm
Sending channels/91/src/dota_91.plist
Sending channels/i4/src/AppController.mm
Sending channels/itools/src/AppController.mm
Sending channels/itools/src/dota_itools.plist
Sending channels/ky/src/AppController.mm
Sending channels/pp/src/AppController.mm
Sending channels/tb/src/AppController.mm
Sending channels/xy/src/AppController.mm
Sending dota.xcodeproj/project.pbxproj
Transmitting file data ..........
Committed revision 9413.
问题解决!