题
我们有一些开发人员在使用相同的VS2005解决方案,但我们的源代码控制非常糟糕。 (我们公司使用Harvest,我们投票不信任。)
现在,我们只是处理共享局域网驱动器上的文件。显然,这会导致一些问题。但我们认为这比在本地工作更好,并且跟踪我们在电子表格中触及的文件并手动合并所有内容。有没有人有合并我们变更的策略?
存在一些问题是因为公司的民主(如强制收获)。这些相同的政策阻止在我们的环境中引入新工具。因此,避免购买/下载新软件的策略最适合我们。
解决方案
将共享视为源控制系统。使共享成为只读,这将迫使开发人员获取本地副本以进行更改。然后你有一个稍微稳定的版本来比较。这将有助于促进能够进行“合并”。 "检查"代码必须包含文件的某种备份策略(可能使用时间戳和用户名作为新文件名的一部分制作文件的副本)并用新版本替换原始文件。
话虽这么说,在没有真正可靠的源控制系统的情况下进行这种类型的活动将是困难且容易出错的。
其他提示
学会使用Harvest。需要花费一点力气才能让事情顺利进行,但总的来说它是一个出色的源控制系统。
另一种可能性是 Beyond Compare from Scooter 。它在文件和目录上有两个和三个方式的合并和很棒的diff功能。如果您想了解更多信息,请收听 delphi播客 Jim McKeith 。
但和大多数其他人一样,我建议使用Git或学习Harvest。如果源控制系统允许更改其差异应用程序,Beyond Compare将是一个很好的替代品。
获取git并在每台开发者的机器上本地安装它。然后将存储库设置为复制。
有两个不同的问题:版本控制和合并。绝对没有理由不使用版本控制系统。如果公司已决定解决方案(无论出于何种原因),请使用它。不喜欢或不喜欢“有信心”它不是不使用它的正当理由。使用共享驱动器来模仿源代码控制系统已经过时了。
合并是第二个问题。您只需要一个差异/合并工具。选一个。没有一个你怎么走这么久?!
Araxis是一个伟大的人。花费几美元。 SourceGear的人们已经在一段时间内自由地分发他们的差异/合并工具(Vault附带的那个)。它也是一个坚实的竞争者。这两个是我用过的,我知道现在还在市场上。还有一些人已经提到了。
手动合并所有东西并不是一个可靠的解决方案。使用VCS将其与 not 相结合是一种灾难。
除非你想手动完成,否则你可能不得不下载一些东西。我强烈推荐 Winmerge 。它是免费的,开源的,并且可能更适合您的小型下载,不会搞砸。
有一个名为merge的标准unix命令行工具,可以相当智能地将两组更改合并到一个文件中。语法是:
merge mine older yours
凡“我的”是您的更改的文件,“更旧”是是原始文件,而“你的”是包含别人的变化。
不确定你是否有一个UNIX(或Mac OS X)盒子可以执行此操作。
使用共享驱动器不是一个好主意,并获得“不信任”投票。
覆盖其他更改太容易了,没有变更跟踪,无法分支或标记/标记等。