到目前为止,我已经开始研究我期望成为我做过的最大项目了,我得出的结论是,我真的需要开始使用某种版本控制,超出我目前的日期zip文件和txt文件的评论。我已经研究了许多不同的选择,但我只是找不到任何我觉得适合我的东西。
我最大的抱怨之一是在任何可用的选项中完全缺乏高质量的GUI,TortoiseSVN似乎是那里最好的,并且仍然非常不直观(我没有反对FOSS,但这看起来似乎成为OSS项目中的常见问题)。阅读SVN和其他版本控制系统的指南和手册,感觉复杂程度类似于学习新的编程语言。 我是一个独立的开发人员,所以我需要非常有限的(如果有的话)合并支持和分支功能,不需要多用户系统,我不需要分布式存储库。基本上我想要的是类似于我的压缩过程的自动化,包括组织支持,评论和基本差异选项。
我一直在努力想要推出自己的程序以满足我的需求,为此我将一个非常基本的GUI模型拼凑在一起,以弄清楚它会是什么样子。请忽略任何拼写和组织/逻辑错误。
请在这里看模拟:
这真的是一个“餐巾纸草图”。我设想的功能是你可以将一个版本从树中拖出并放在你想要的地方。它将创建一个包含该项目版本的目录。目录中将有一个包含版本信息的隐藏文件。如果要创建新版本,可以将该文件夹拖放到树视图中。如果您使用的是不是最新版本的版本,则会创建分支。它会检查文件更改/移动/重命名并提示输入常规版本和特定文件注释。
我的问题是多方面的。那里有什么类似于我正在寻找的东西吗? (我对合理定价的非自由选项持开放态度)。
如果没有,这是一个值得的项目吗?如果是这样会不会在整个编程社区中对这种程序进行任何调用,这会使得作为最终用户产品的程序变得有价值吗?
@ josh3736
现在,现在, - 我知道你在这里的意思;我会考虑将多用户支持作为我将在稍后版本中添加到系统中的内容,并相应地进行规划。至于合并支持,我绝不会在我的任何项目上使用超过一个小团队,因此除了基本的合并支持之外不需要任何其他东西。 到目前为止 - 我想我会更清楚地说我不同意分布式存储库背后的概念而根本不会使用它们。我不是在大型商业项目或大型FOSS项目中争论这些功能的必要性和实用性 - 但我不会使用Oracle来跟踪我朋友的电话号码。虽然自定义GUI是一个很好的建议,但它对我来说真的不是一个项目。恕我直言,它举例说明了我所看到的开发OSS系统(如SVN)的主要问题,它是由各种组件构建而成,并且构建在彼此之上会导致高度不直观的系统(通常不仅仅是GUI)没有明确的设计或重点。
答案 0 :(得分:4)
我也曾被SVN的复杂性所吓倒。然而,我强迫自己真的深入挖掘它,我永远不会回去。它真的没花那么长时间才能掌握它。一旦你对它有了感觉,乌龟真的不是那么糟糕的用户界面。如果您使用的是Windows,VisualSVN(免费)可以让您轻松设置服务器。
我现在为最简单的项目创建一个SVN存储库。即使在单人项目上,在多台计算机上查看工作副本的能力也很棒。这样,我可以从我的桌面或笔记本电脑上处理我的项目,而不必担心哪台计算机具有哪个文件的最新版本。只需更新,合并,继续我的生活。
我会建议不要自己滚动。版本控制是already been solved的问题;你将花费更多的时间重新发明轮子,而不是你真正感兴趣的项目。另外,考虑一下,“我现在是个人开发人员 ,这是有帮助的,所以我需要非常有限的(如果有的话)合并支持和分支功能 现在 ,不需要多用户系统 尚未 ,我不需要分布式存储库 到目前为止 强>“。
如果您仍然没有在可用的SVN工具的UI上销售,那么仍然有一个愉快的媒介:为什么不使用SVN API滚动GUI前端来解决您在当前SVN工具中看到的不足之处?如果您使用的是.NET,SharpSvn是API的一个很棒的C#包装器。
如果这是你认为的大项目,我认为 - 现在开始使用正确的SCM工具 更好,即使有一点学习曲线。
答案 1 :(得分:1)
我现在也在实用程序上出售,并且相对容易在我的项目中使用源代码控制系统。我正在使用Mercurial和TortoiseHg,这几乎是一样的,除了你可以很容易地在机器之间同步。我一直在我的笔记本电脑上工作,我的工作机器,并将副本发布到code.google.com,这很快捷。
对我而言,关键的实现是工作目录就是......一个工作的地方。您可以将其恢复到以前的任何配置,并且所有添加和删除都会神奇地发生。这比处理顺序编号的Zip文件容易得多..我永远不会回去。
由于我们都拥有千兆字节的可用空间,因此文件空间开销很小。
所以......深入挖掘,玩得开心。