关于visual sourcesafe的一个疑问:比如说,有几个工程,我对中间的某一个地方更改,但是其他有一些地方别的人员有更改过
我没有更新到,那我生成并发布的话,是不是那些板块就恢复到他们更改之前?
如果是的话,如何避免这种情况,
如果不是的话,又是什么原理呢?
请高手帮忙解答,谢谢啦

解决方案 »

  1.   

    没有更新到的当然就是更新之前的版本了。
    所以使用VSS一定要获取最新版本再做了。
      

  2.   

    如果没有更新到相当于你的源代码还一直保持着更新前的状态,一定要获得最新的版本再check out,否则容易出现代码回滚;
    这个没有别的办法,总之多GET几次latest version;
    原理很简单:VSS的文件访问是独占式的,当其他人check out的时候你的文件是没有办法修改的,一定要等到其他人check in了之后你再get latest version,这个操作相当于把其他人修改过的文件替换你本地的文件,当然你可以选择覆盖也可以选择保持原来的文件不被修改。
      

  3.   

    楼上是老黄历了,vss早就象CVS一样,允许多个用户同时签出,自动merge了。
      

  4.   

    你在签出做修改的时候应该已经自动获取了,除非你们设置VSS是可以多人签出的模式。
    这个你问一下你们领导就知道啦。
      

  5.   

    那有没有办法一次性get latest version,因为有很多工程,工程下面又有很多的文件夹,
    如果一个一个的get,那是非常麻烦的,谢谢
      

  6.   

    多人同时签出当然是有他的意义了,要不VSS也不会增加这个功能(而且缺省设置就是这个)。其实,只要签入工程文件和解决方案文件时小心点,看仔细文件列表,多人同时签出没什么问题。楼主没有等其他人签入就发布,无非其他人的修改被暂时冲掉了而已。只要其他人接着签入,重新发布一次就可以了。如果不能自动merge,VSS会提示的,这种情况不多,出现的时候互相协调一下,手工merge就可以了。
      

  7.   


    你可以一次获取整个解决方案的所有文件及目录啊。怎么会一个个的来获取呢?你可以把整个解决方案绑定到VSS啊。最好不要手动的去管理VSS,而在VS编辑器里来自动管理。
      

  8.   

    如果你不是把整个解决方案绑定到VS,那么你也可以手动的打开VSS,用鼠标在你的项目的最上一层用递归获取所有的子目录及文件,不用一个个的目录来获取,如果你绑定到了VS,那么在VS里的解决方案上点获取就可以了。
      

  9.   


    选是,建立树,这样会把所有的代码及文档都以最新的版本下载到你的本机。你应该在项目开始的时候就把整个解决方案绑定到VS,如果后来绑定,如果操作不当可能会产生错误目录,到了这个时候,你还是在VSS上获取文件吧。