除了源代码,还使用版本控制吗?
我发现SVN对于文档,个人文件以及其他非源代码使用非常有用。
我们发现版本控制系统总体上还有哪些其他实际用途?
解决方案
回答
我在LaTeX中编辑了许多文档,因此我使用SVN来存储tex文件和图像等。进行差异化非常方便,如果遇到灾难,希望能救我。
回答
我在路径中有一个名为bin的文件夹,其中包含有用的实用程序,例如sysinternals和其他实用程序。我使用svn在不同的机器上保持最新状态。此外,诸如Powershell脚本,vimrc文件等之类的东西也可以很好地保持集中。
回答
我什至从没想过将它用于个人用途,但是在软件项目中,我检查了以后无法重新生成的几乎所有内容(例如可执行文件和代码生成的文档)。文档总是会被签入。向客户的演示文稿也会被签入并加上用于演示的代码库(如果有演示的话)进行标记。
我认为SVN和CVS对非技术用户还不够"友好",但是现在我很想知道非工程项目的版本控制的可能用途...
回答
通常,我需要将构建过程中需要的任何内容放入源代码管理中。唯一出现的问题是,如果我们有其他部门准备的资源,例如营销,例如安装。
回答
大多数文档将由多于一对的人眼来查看。例如,在项目计划阶段,当分析师更新需求文档,并且我们希望了解自上次查看以来发生了什么变化时,它是非常有用的。 Wiki也具有此功能,即natch。我们将SharePoint用于这些目的,但请选择供应商。
回答
在我的早期工作之一中,我们使用CVS进行DNS修订控制。这主要是一种备份区域文件的廉价且肮脏的方式。
我还听说过有人在其主目录中使用版本控制系统。
回答
我已经看到版本控制用于其他非源代码目的,例如,
- 模式文件-一组代表真实世界模式的XML模式文件
- 内容文件-以特定格式表示的内容,使用源代码管理将其绑定到VStudio中的设计器,允许历史记录,回滚所有内容,而无需数据库交互
在这两种情况下,我们都注意到它基本上是冗长的文件,将这些文件放在源代码管理中而不是"数据库中的文本记录"的主要原因是
- 可能需要比较版本的文件
- 历史记录(因为有多个用户在使用它们)
- 回滚到早期版本的能力
- 通过获取特定标签来进行标签和发布
- 如果我们使用Team Foundation(TFS),则包含工作项目的整个Scrum模板等
- 没有涉及数据库,没有针对以上所有内容的额外开发
回答
在我学校的最后一个学期中,我上了两节课,每节课都有一个耗时的大型项目,要在学期末进行。他们整个学期都还要求写几篇长篇论文。我在这两个类中都大量使用了SVN,以跟踪对每个论文和项目所做的每项更改。
在写作方面,我更像是"一次编写全部"的家伙,如果我尝试将过程分散到多个会话中,往往会迷失方向。能够比较我论文的最新修订版使我更容易回到正轨。
回答
无论出于什么目的,我几乎对所有文档都使用修订控制。
我正在使用Mercurial,因此在给定目录中建立新的存储库只是一个简单的" hg init",与建立新的Subversion存储库相比,我发现麻烦不多。
我还发现,在任何需要同步我现在正在使用的文件而不是rsync来满足我所有同步需求的情况下,RCS都很棒。使备份将存储库克隆到另一个位置/机器/磁盘也更容易,这意味着我可以将更改推送到该位置,而使用默认推送存储库则更容易。如果我们没有在远程仓库中进行修改,那么除了默认设置外,我们甚至不需要担心太多。
对我来说最好的事情之一是,我可以在拥有SSH访问权限的任何系统上进行同步,备份或者执行任何操作。 (好吧,如果他们愿意在Uni为我安装Mercurial,那我可以!)
回答
是的,我在git中有一个doc目录。我包含一个待办事项列表,日历和其他一些文档。
回答
我使用SVN签入对Asterisk VOIP服务器配置文件的更改。我有一个存储库,其中有一个文件夹对应于多个服务器中的每一个。该文件夹包含/ etc / asterisk的全部内容。
回答
我已经将Subversion用于源代码控制,构建环境,安装程序脚本以及所有可开发的优点。我还为非技术用户设置了二进制文件的存储库,在这种情况下为旧的Excel和Word文档。考虑到我们丢失了任何合并功能,它工作正常。但是,它使我们所有的用户都能获得一整吨的信息,这些信息大部分都是由两三个人编辑的。有了简单的说明,说明如何在进行任何编辑之前进行更新(必要时锁定),然后处理冲突(检查更新的内容,然后删除副本并执行更新),他们就能很好地处理存储库中的内容,尽管我不确定他们是否真的喜欢过。 :)
回答
我经常使用版本控制来处理常见文件,因为我有一台笔记本电脑,一台台式机在工作以及一个家用台式机,在该台式机上我也要进行很多工作(我每周在家工作两天)。
在它们中的任何一个上的新会话都以名为" start"的脚本开始,该脚本更新了一堆检出,并以名为" stop"的脚本结束,该脚本向VCS提交了一些内容,或者至少向我显示了这些修改。
我将其用于:
- 我的一个文件"完成事情"任务列表(请参阅yagtd,我使用的工具)
- 我的密码数据库(我应该已经将该建议发送给StackOverflow播客,以回答Joel的问题)
- 我在项目中的所有随机注释和文件
- 一堆电子表格(包括一个每天跟踪一些个人事物的电子表格)
- 一些图片(例如我使用的网络头像)
另外,我在Subversion之上写了一些东西来管理系统和用户帐户的配置文件。我在这么多机器上拥有如此多的帐户,并且我厌倦了总是重新学习如何配置shell / vim / ...,因此现在我也将大部分内容存储在版本控制中。其中包括电子邮件签名文件,$ HOME / bin中的一堆shell脚本,...
回答
在我公司,开发小组的目标是将Subversion几乎用于每个电子文档。这取决于能否"锁定"无法合并的文件,例如Excel文档。 SVN提供"需要锁定"功能,并且获取锁定,修改,提交工作流相当简单。
软件工程师是随随便便的,但是机械工程师还是有一些阻力。他们想使用例如Excel的同时协作编辑功能。他们没有适应获取锁定,修改,提交工作流程。
TortoiseSVN使我们可以比较Word文档,我发现它非常有用。显然,它也支持合并,尽管我实在太难了,无法尝试该功能...
我想认真考虑DVCS,例如git或者Mercurial。但是除非它可以锁定二进制文件格式(即不可合并的)文件(因此变得更像此类文件的集中模型)和/或者合并我们使用的二进制文件格式,否则它将不适合我公司的使用。
我只希望所有软件公司为其专有的doc格式提供良好的差异和合并工具。这将增加专有文档格式的版本控制系统的价值。