.net自带的VSS不灵活,从delphi年代到现在我一直用svn,我现在用的是:
-------------
Server: VisualSVN-Server-1.6.4.msi (最新)
client: TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi (最新)
LanguagePack_1.6.6.17493-win32-zh_CN.msi (最新)
-------------
要管控的项目有很多,
版本库文件放在E:\Repositories下,另外E:\Repositories又以svn-local的形式提交到[U盘\Repositories]中。
我在每个项目根目录中都放有svn_commit.bat与svn_update.batsvn_commit.bat
-------------
@echo off
echo ----- commit %1% -----
TortoiseProc.exe /command:commit /path:".\" /closeonend:2
-------------svn_update.bat
-------------
@echo off
echo ----- update %1% -----
TortoiseProc.exe /command:update /path:".\" /closeonend:2
-------------并且在版本库E:\Repositories中放有[svn_commit All.bat]与[svn_update All.bat][svn_commit All.bat]
-------------
@echo offecho ===== commit all =====
color 2Ecall e:\Projects\Project1\svn_commit.bat Project1
call e:\Projects\Project2\svn_commit.bat Project2
call e:\Projects\ProjectNNN\svn_commit.bat ProjectNNNset %prj=ProjectMMM
e:
cd\
cd Projects\%prj%
call svn_commit.bat %prj%echo 当所有项目提交完毕,再把此最新的版本库当成项目再次提交到U盘中(此功能仅在服务器端有效)。
e:
cd\
cd \Repositories
call svn_commit.bat e:\Repositories
-------------
[svn_update All.bat]
-------------
@echo offecho ===== update all =====
color 1Eecho 先从U盘获取最新版本库,再根据最新版本库更新其它项目
e:
cd\
cd \Repositories
call svn_update.bat Repositoriescall e:\Projects\Project1\svn_update.bat Project1
call e:\Projects\Project2\svn_update.bat Project2
call e:\Projects\ProjectNNN\svn_update.bat ProjectNNNset %prj=ProjectMMM
e:
cd\
cd Projects\%prj%
call svn_update.bat %prj%call p:\Projects\Project1\svn_update.bat Project1
call p:\Projects\Project2\svn_update.bat Project2
call p:\Projects\ProjectNNN\svn_update.bat ProjectNNN-------------问题是在提交的时候如果没有更新,没法让svn提交窗口自动半闭(如果更新的时候如果没冲突或出错则可以自动关闭)。
-------------
Server: VisualSVN-Server-1.6.4.msi (最新)
client: TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi (最新)
LanguagePack_1.6.6.17493-win32-zh_CN.msi (最新)
-------------
要管控的项目有很多,
版本库文件放在E:\Repositories下,另外E:\Repositories又以svn-local的形式提交到[U盘\Repositories]中。
我在每个项目根目录中都放有svn_commit.bat与svn_update.batsvn_commit.bat
-------------
@echo off
echo ----- commit %1% -----
TortoiseProc.exe /command:commit /path:".\" /closeonend:2
-------------svn_update.bat
-------------
@echo off
echo ----- update %1% -----
TortoiseProc.exe /command:update /path:".\" /closeonend:2
-------------并且在版本库E:\Repositories中放有[svn_commit All.bat]与[svn_update All.bat][svn_commit All.bat]
-------------
@echo offecho ===== commit all =====
color 2Ecall e:\Projects\Project1\svn_commit.bat Project1
call e:\Projects\Project2\svn_commit.bat Project2
call e:\Projects\ProjectNNN\svn_commit.bat ProjectNNNset %prj=ProjectMMM
e:
cd\
cd Projects\%prj%
call svn_commit.bat %prj%echo 当所有项目提交完毕,再把此最新的版本库当成项目再次提交到U盘中(此功能仅在服务器端有效)。
e:
cd\
cd \Repositories
call svn_commit.bat e:\Repositories
-------------
[svn_update All.bat]
-------------
@echo offecho ===== update all =====
color 1Eecho 先从U盘获取最新版本库,再根据最新版本库更新其它项目
e:
cd\
cd \Repositories
call svn_update.bat Repositoriescall e:\Projects\Project1\svn_update.bat Project1
call e:\Projects\Project2\svn_update.bat Project2
call e:\Projects\ProjectNNN\svn_update.bat ProjectNNNset %prj=ProjectMMM
e:
cd\
cd Projects\%prj%
call svn_update.bat %prj%call p:\Projects\Project1\svn_update.bat Project1
call p:\Projects\Project2\svn_update.bat Project2
call p:\Projects\ProjectNNN\svn_update.bat ProjectNNN-------------问题是在提交的时候如果没有更新,没法让svn提交窗口自动半闭(如果更新的时候如果没冲突或出错则可以自动关闭)。
当有大的改动时会即时执行该项目下的[commit.bat]提交,每晚再执行[svn_commit All.bat]提交所有,包括未改动的(此时真是累,要人为判断并点击十几下确认)。如果想用小程序sendkeys自动send[ALT+O]键(确认按钮的快捷键),
又判断不出那窗体显示的是否有内容要提交。
----------------------------
题外话:
我打开CSDN,先登录,进入我的未结贴子(也就是此贴子),
居然显示“回复内容 匿名用户不能发表回复! 登录| 注册 ”
是不是csdn的bug? 进了自己的贴子居然说未登录,输得很烦。
Cookie有开,电脑上百度一直都用cookie自动登录。
----------------------------
TortoiseProc.exe /command:commit /path:".\" /closeonend:2
中的参数 /closeonend:2 (没错误就自动提交)无效,不知有什么替代的办法。
想想,还是十年前用了C++,以后就没接触了,看到C++头都痛的,现在的C#像看VB一样清xi。