.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提交窗口自动半闭(如果更新的时候如果没冲突或出错则可以自动关闭)。

解决方案 »

  1.   

    以前一直用VSS,现在开始用SVN,我觉得保留那个窗口是为了确认能看到情况描述吧(不管有无冲突),好像SVN支持定制的地方不多,而且一般人也不会觉得那个有多麻烦。
      

  2.   

    我是十几个项目都加在[svn_commit All.bat]中,一般一天下来只会修改两三个project,
    当有大的改动时会即时执行该项目下的[commit.bat]提交,每晚再执行[svn_commit All.bat]提交所有,包括未改动的(此时真是累,要人为判断并点击十几下确认)。如果想用小程序sendkeys自动send[ALT+O]键(确认按钮的快捷键),
    又判断不出那窗体显示的是否有内容要提交。
    ----------------------------
    题外话:
    我打开CSDN,先登录,进入我的未结贴子(也就是此贴子),
    居然显示“回复内容 匿名用户不能发表回复! 登录| 注册  ”
    是不是csdn的bug? 进了自己的贴子居然说未登录,输得很烦。
    Cookie有开,电脑上百度一直都用cookie自动登录。
    ----------------------------
      

  3.   

    简而言之:
    TortoiseProc.exe /command:commit /path:".\" /closeonend:2 
    中的参数 /closeonend:2 (没错误就自动提交)无效,不知有什么替代的办法。
      

  4.   

    由于经常用vs搞开发,所以这要分开来说。我觉得集成在vs的操作中的版本管理工具是我开发中唯一需要的版本管理工具。当我自动打开项目时,它自动从服务器和本地来检出最新文件;当我编辑一个文件时,它自动check-out这个文件;当我关闭项目或者从项目上操作时,自动check-in。最关键地,我其实非常不习惯svn那种marge方式,我赞成加锁的方式。如果不进行它代码开发,例如就是写点word文件之类,要备份,那么使用svn或者其它什么都无所谓。
      

  5.   

    下了tortoiseSVN的源码,但不会改,编译时也出现少 .h 的现象。
    想想,还是十年前用了C++,以后就没接触了,看到C++头都痛的,现在的C#像看VB一样清xi。
      

  6.   

    CVS   可以写pathon代码,不错的东东.