您是否使用除源代码之外的版本控制?

时间:2008-08-18 13:30:21

标签: svn version-control cvs

我发现SVN对于文档,个人文件以及其他非源代码使用非常有用。 您在版本控制系统中发现了哪些其他实际用途?

14 个答案:

答案 0 :(得分:6)

我见过版本控制用于其他非源代码目的,比如

  1. 架构文件 - 一组表示真实架构的XML架构文件
  2. 内容文件 - 以特定格式表示的内容,与VStudio中的设计人员绑定,使用源代码控制,允许历史记录,回滚所有内容,无需数据库交互
  3. 在这两种情况下,我们都注意到它基本上是冗长的文件,在源代码管理中拥有这些文件而不是“数据库中的文本记录”的主要原因是

    1. 可能需要比较版本的文件
    2. 历史记录(因为有多个用户使用它们)
    3. 能够回滚到早期版本
    4. 通过获取特定标签进行标记和发布
    5. 如果您使用Team Foundation(TFS),整个scrum模板包含工作项等
    6. 没有涉及数据库,上述所有内容都没有额外开发

答案 1 :(得分:5)

在我早期的一个工作中,我们使用CVS进行DNS修订控制。它主要是备份区域文件的廉价而肮脏的方式。

我也听说有人在他们的主目录中使用版本控制系统。

答案 2 :(得分:5)

在我上学的最后一个学期,我参加了两个课程,每个课程都有一个大型,耗时的项目,在学期结束时。他们在整个学期都需要几篇长篇论文。我在两个课程中大量使用SVN来跟踪我对每篇论文和项目所做的每一项更改。

在谈到写作时,我更像是“一次性写下来”,如果我试图在多个会话中传播这个过程,我往往会失去思路。能够对我论文的最新版本进行区分,使我更容易回到正轨。

答案 3 :(得分:4)

我在LaTeX中编辑了很多文档,因此我使用SVN来存储tex文件和图像等等。方便做Diffs,如果我遇到灾难,希望能救我。

答案 4 :(得分:3)

一般来说,我需要将任何构建过程放入源代码控制中。出现的唯一问题是,如果您有其他部门准备的资源,例如:营销,例如你的安装。

答案 5 :(得分:2)

我在路径中有一个名为bin的文件夹,其中包含来自sysinternals和其他实用程序的有用实用程序。我使用svn在不同的机器上保持最新。此外,诸如PowerShell脚本,vimrc文件等内容非常适合保持集中。

答案 6 :(得分:2)

我从来没有想过将它用于个人用途,但在软件项目中,我几乎检查了以后无法重新生成的所有内容(包括可执行文件和代码生成的文档)。文档总是被签入。如果有演示,将向客户的演示文稿进行检入并标记用于演示的代码库。

我认为SVN和CVS对非技术用户来说并不“友好”,但我现在很好奇非可能用于非工程项目的版本控制......

答案 7 :(得分:2)

大多数文档都会被一对以上的人眼观看。这非常有用,例如,在项目规划阶段,当分析师更新需求文档时,您希望看到自上次看到之后发生了哪些变化。 Wikis也有这个功能,natch。我们将SharePoint用于这些目的,但请选择您的供应商。

答案 8 :(得分:2)

我对常见文件使用版本控制很多,因为我有一台笔记本电脑,一台台式机在工作,还有一台家用台式机,我也做了很多工作(我每周工作两天)。

任何一个新会话都会以一个名为“start”的脚本开始,该脚本会更新一系列签出,并以一个名为“stop”的脚本结束,该脚本会向VCS提交一些内容,或者至少向我显示修改。< / p>

我将它用于:

  • 我的单文件Getting Things Done任务列表(参见yagtd,我使用的工具)
  • 我的密码数据库(我应该将该建议发送到StackOverflow播客以回复Joel的问题)
  • 我所有关于项目的随机笔记和文件
  • 一堆电子表格(包括日常跟踪某些个人信息的电子表格)
  • 一些图片(比如我使用的网页头像)

此外,我在Subversion之上编写了一些内容来管理系统和用户帐户的配置文件。我在很多机器上都有很多账号,而且我已经厌倦了总是重新学习如何配置我的shell / vim / ...所以我现在也将大部分内容存储在版本控制中。这包括电子邮件签名文件,$ HOME / bin中的一堆shell脚本,......

答案 9 :(得分:1)

我出于任何目的对几乎所有文档使用版本控制。

我正在使用Mercurial,因此在给定目录中设置一个新的存储库是一个简单的“hg init”问题,我发现这比设置一个新的Subversion存储库要麻烦得多。

我还发现RCS在需要同步文件的任何情况下都很棒 - 我现在使用它而不是rsync来满足我的所有同步需求。备份也更容易 - 将存储库克隆到另一个位置/机器/磁盘意味着我可以将更改推送到该位置,这对于默认的推送存储库来说更加容易。如果您没有在远程仓库中进行修改,那么除了默认设置之外,您甚至不必过于担心设置它。

对我来说最好的事情之一就是我可以在任何有SSH访问权限的系统上进行同步,备份或其他任何操作。 (好吧,如果他们在Uni为我安装mercurial,那我就可以!)

答案 10 :(得分:1)

在我的公司,开发小组的目标是将Subversion用于几乎所有电子文档。这取决于能否“锁定”无法合并的文件,例如Excel文档。 SVN提供“需求锁定”功能,并且get-lock,modify,commit工作流程相当简单。

软件工程师在船上,但机械工程师有一些阻力。例如,他们希望使用Excel的同步协作编辑功能。他们还没有适应get-lock,modify,commit工作流程。

TortoiseSVN允许您对Word文档进行区分,我发现非常非常有用。它显然也支持合并,虽然我太过鸡了,不能尝试这个功能......

我想认真考虑一下DVCS,比如git或Mercurial。但除非它可以锁定二进制文件格式(即不可合并的)文件(因此变得更像这种文件的集中模型),和/或合并我们使用的二进制文件格式,它将不适合我公司的用法。

我希望所有软件公司都能为其专有的doc格式提供良好的差异和合并工具。这将增加专有doc格式的版本控制系统的价值。

答案 11 :(得分:0)

是的,我在git中有一个doc目录。我包含待办事项清单,日历和其他一些文件。

答案 12 :(得分:0)

我使用SVN检查Asterisk VOIP Server配置文件的更改。我有一个存储库,其中包含与每个服务器对应的文件夹。该文件夹包含/ etc / asterisk的全部内容。

答案 13 :(得分:0)

我已经将Subversion用于源代码控制,构建环境,安装程序脚本以及所有开发优势的所有内容。我还为非技术用户设置了二进制文件的存储库,在这种情况下是旧的Excel和Word文档。考虑到我们失去了任何合并功能,它工作正常。但它让我们所有的用户都可以获得大量信息,这些信息大部分都是由两三个人编辑的。在进行任何编辑(必要时锁定),然后处理冲突(检查更新后的内容然后删除副本并执行更新)之前,如何更新简单说明,他们能够很好地处理存储库的事情,虽然我不确定他们真的长大了喜欢它。 :)