许多使用Visual Studio的程序员很难适应这样的事实:在其他源代码控制系统中,文件不需要在任何给定时间锁定/检出给一个开发人员.
合并的支持者说允许两个人在同一个文件上工作可以提高工作效率,因为它可以消除对同一源文件的排队.它还避免了需要编写代码的情况,但是对于刚刚离开两周假期的人来说,检查了源代码.
锁定拥护者说当多个人同时在同一个文件上工作时会引入很多风险.根据他们的说法,在使用合并模型时,团队成员之间的沟通和协调变得更加必要.此外,很多人似乎不信任自动合并.
使用一种方法而不是另一种方法的最有说服力的理由是什么?
我的同事是0 2上的问题,他一直激励着(1,2),所以我想我应该给他一个机会,迎头赶上.
我们最近的分歧是关于将"const"放在声明上的样式问题.
他认为它应该在类型前面,或者在指针之后.原因在于,这是其他人通常所做的事情,其他风格可能会让人感到困惑.因此,指向常量int的指针和指向int的常量指针将分别为:
const int *i;
int * const i;
Run Code Online (Sandbox Code Playgroud)
但是,无论如何我很困惑.我需要的是一致的,易于理解的规则,我可以做的"常量"意义上的唯一方法是,它去后,它被修改的事情.有一个例外允许它在最终类型前面,但这是一个例外,所以如果我不使用它,它会更容易.
因此,指向常量int的指针和指向int的常量指针将分别为:
int const * i;
int * const i;
Run Code Online (Sandbox Code Playgroud)
作为一个额外的好处,以这种方式做事使得更深层次的间接更容易理解.例如,指向int的常量指针的指针显然是:
int * const * i;
Run Code Online (Sandbox Code Playgroud)
我的论点是,如果有人只是按照自己的方式学习,他们就可以轻松搞清楚上面的内容.
这里的最终问题是他认为将int放在int之后是如此难以言喻的丑陋,对可读性有害,以至于它应该在样式指南中被禁止.当然,我认为如果指南应该建议按照我的方式做,但无论哪种方式,我们都不应该禁止一种方法.
编辑: 我已经得到了很多好的答案,但没有一个真正直接解决我的最后一段("最终问题").很多人都争论一致性,但在这种情况下是如此理想,禁止其他方式这样做是一个好主意,而不是仅仅劝阻它?
我目前正在使用git作为一个大型存储库(大约12 GB,每个分支的大小为3 GB).此存储库包含许多二进制文件(音频和图像).
问题是克隆和拉取可能需要很多时间.特别是"解决增量"步骤可能非常长.
解决这类问题的最佳方法是什么?
我尝试删除增量压缩,因为它在此处使用.gitattributes中的delta选项进行了解释,但它似乎没有改善克隆持续时间.
提前致谢
凯文
在工作中我刚开始使用Subversion和AnkhSVN而不是Visual Source Safe.我设法将其整合得足够好,但看起来并不相同.使用VSS会发生以下情况:
用户通过右键单击并选择"签出"或通过编辑来签出文件.如果另一个用户试图修改同一个文件,他将收到错误.没有2个用户可以同时编辑同一个文件.没有花哨的合并.没有冲突,没有冲突解决方案.
我理解Subversion背后的哲学是不同的,但是有什么办法可以用Subversion复制上面描述的这种行为?
AnkhSVN中有一个名为"自动锁定文件更改..."的选项,但即使我在编辑文件时激活此选项,它也永远不会自动锁定.即使此选项有效,其他用户也不会在提交文件之前看到锁定.当他们尝试编辑它时,他们不会像在Visual Source Safe中那样出错.
所以基本上:使用Subversion和AnkhSVN可以复制Visual Source Safe的行为吗?