除了源代码,您是否使用版本控制?

14

我发现SVN在文档、个人文件等非源代码用途上非常有用。

你还发现版本控制系统的其他实际用途是什么?

14个回答

6
我看到版本控制被用于其他非源代码的目的,比如:
  1. 模式文件 - 一组表示真实模式的 XML 模式文件
  2. 内容文件 - 以特定格式表示的内容,与 VStudio 中的设计师绑定,在使用源代码控制时,允许历史记录、回滚所有更改,而无需进行数据库交互
在这两种情况下,我们注意到它们基本上都是冗长的文件。将这些文件放入源代码控制中的主要原因是:
  1. 可能需要比较版本的文件
  2. 历史记录(因为多个用户都在处理它们)
  3. 能够回滚到早期版本
  4. 通过获取特定标签来进行标记和发布
  5. 如果您使用 Team Foundation(TFS),则可以使用整个 Scrum 模板及工作项等功能
  6. 不涉及数据库,也不需要进行额外的开发

5

在我早期的一份工作中,我们使用CVS进行DNS版本控制。主要是为了以一种简单粗暴的方式备份区域文件。

我还听说过有人将版本控制系统用于他们的个人目录。


5

在我大学的最后一个学期,我修了两门课程,每门课都有一个大型、耗时的项目要在学期末提交。它们还要求整个学期写几篇较长的论文。我在这两门课上都广泛使用 SVN 来跟踪我对每篇论文和每个项目所做的每一次更改。

当涉及到写作时,我更喜欢“一口气写完”的方式,并且如果我试图在多个会话中分散这个过程,我往往会失去思路。能够查看我的论文的最新版本差异,使我更容易重新进入状态。


4

我经常使用LaTeX编辑许多文档,因此我使用SVN存储tex文件、图片等。这对于进行差异比较非常方便,希望在遇到灾难时能够挽救我。


3

通常,我将构建过程所需的任何内容都放入源代码控制中。唯一的问题是,如果您有其他部门(例如市场营销)准备的资源,这些资源可能会被包含在您的安装程序中。


2

我有一个名为bin的文件夹,其中包含像sysinternals等有用的实用程序。我使用svn在不同的机器上更新它们。此外,像powershell脚本、vimrc文件等也很适合集中管理。


2
我甚至没想过将它用于个人事务,但在软件项目中,我会检查所有无法在以后重新生成的内容(例如可执行文件和代码生成的文档)。文档一定会被检查。提供给客户的演示文稿也会被检查并与用于演示的代码库一起标记,如果有演示的话。
我认为 SVN 和 CVS 对非技术用户来说不够“友好”,但我现在对非工程项目使用版本控制的可能性很感兴趣...

2

大多数文档都需要被多人查看。例如,在项目计划阶段,分析员更新需求文档时,您想了解自上次查看以来有哪些变化,这时文档比较有用。当然,维基百科也具备这种功能。我们使用SharePoint进行此类操作,但可以选择其他供应商。


2

我经常使用版本控制来管理一些常用文件,因为我有一台笔记本电脑、一台工作用的台式机以及一台家里的台式机,我也在家里工作两天。

任何一台机器上的新会话都会从一个名为“start”的脚本开始,该脚本会更新一堆检出内容,并以一个名为“stop”的脚本结束,该脚本会将一些内容提交到版本控制系统中,或者至少显示修改的内容。

我使用它来:

  • 管理我的Getting Things Done任务列表(请参见我使用的工具yagtd
  • 管理我的密码数据库(我应该把这个建议发送给StackOverflow播客,回答Joel的问题)
  • 管理所有关于项目的随机笔记和文件
  • 管理一些电子表格(包括跟踪一些个人事物的日报表)
  • 管理一些图片(比如我使用的网络头像)

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


嗨,Thomas,你能再解释一下“我的密码数据库”是什么意思吗?你指的是什么? - Vin
也许他在谈论一个KeePass数据库。 - Craig McQueen

1

我几乎为所有目的使用版本控制来管理我的文档。

我正在使用Mercurial,因此在给定目录中设置新存储库只需要简单的“hg init”命令,这比设置新的Subversion存储库要容易得多。

我还发现RCS在任何需要同步文件的情况下都非常好用 - 我现在使用它来代替rsync进行所有同步需求。它也更容易备份 - 将存储库克隆到另一个位置/机器/磁盘意味着我可以将更改推送到该位置,如果有默认的推送存储库,则更容易。如果您不在远程存储库中进行修改,则无需过多担心设置除默认值外的其他内容。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接