14

我发现 SVN 对于文档、个人文件以及其他非源代码用途非常有用。一般来说,您发现版本控制系统还有哪些其他实际用途?

4

14 回答 14

6

我已经看到版本控制被用于其他非源代码目的,例如,

  1. 模式文件 - 一组表示真实世界模式的 XML 模式文件
  2. 内容文件 - 以特定格式表示的内容,这与 VStudio 中的设计器相关联,使用源代码控制,允许历史记录,回滚所有内容,无需数据库交互

在这两种情况下,我们注意到它基本上是冗长的文件,将这些文件放在源代码管理中而不是“数据库中的文本记录”的主要原因是

  1. 可能需要比较版本的文件
  2. 历史(因为有多个用户在处理它们)
  3. 能够回滚到早期版本
  4. 通过获取特定标签来标记和发布
  5. 如果你使用 Team Foundation (TFS),整个 scrum 模板和工作项等
  6. 不涉及数据库,以上所有内容都没有额外的开发
于 2008-08-18T13:46:29.600 回答
5

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

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

于 2008-08-18T13:41:41.997 回答
5

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

在写作方面,我更像是一个“一次写完”的人,如果我试图将这个过程分散到多个会话中,我往往会失去思路。能够区分我论文的最新版本使我更容易回到正轨。

于 2008-08-18T13:55:27.193 回答
4

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

于 2008-08-18T13:33:52.293 回答
3

通常,我将构建过程需要的任何东西放入源代码控制中。唯一出现的问题是,如果您有其他部门(例如市场营销)准备的资源,例如安装在您的安装中。

于 2008-08-18T13:37:28.680 回答
2

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

于 2008-08-18T13:35:16.783 回答
2

我从来没有想过将它用于个人的东西,但是在软件项目中,我检查了几乎所有不能在以后重新生成的东西(这方面的例子包括可执行文件和代码生成的文档)。文档总是会被签入。如果有演示,向客户的演示文稿会被签入并与用于演示的代码库一起标记。

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

于 2008-08-18T13:36:51.227 回答
2

大多数文档将由不止一对人眼查看。例如,在项目规划阶段,当分析师更新需求文档并且您想查看自上次看到它以来发生了什么变化时,它非常有用。Wiki 也有这个功能,natch。我们将 SharePoint 用于这些目的,但请选择您的供应商。

于 2008-08-18T13:38:12.673 回答
2

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

他们中的任何一个的新会话都以一个名为“start”的脚本开始,该脚本更新了一堆结帐,并以一个名为“stop”的脚本结束,该脚本向 VCS 提交了一些内容,或者至少向我展示了修改。

我将它用于:

  • 我的一个文件完成任务列表(请参阅yagtd,我使用的工具)
  • 我的密码数据库(我应该将该建议发送到 StackOverflow 播客以回复 Joel 的问题)
  • 我所有关于项目的随机笔记和文件
  • 一堆电子表格(包括一个每天跟踪一些个人事情的电子表格)
  • 一些图片(比如我使用的网络头像)

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

于 2008-08-25T21:43:54.517 回答
1

出于任何目的,我几乎对所有文档都使用了修订控制。

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

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

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

于 2008-08-18T14:28:47.813 回答
1

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

软件工程师在船上,但机械工程师有一些阻力。例如,他们希望使用 Excel 的同步协作编辑功能。他们还没有适应获取锁定、修改、提交工作流。

TortoiseSVN 可以让你区分 Word 文档,我觉得这非常有用。它显然也支持合并,尽管我太胆小了,无法尝试该功能......

我想认真考虑 DVCS,例如 git 或 Mercurial。但除非它可以锁定二进制文件格式(即不可合并)文件(从而变得更像此类文件的集中模型),和/或合并我们使用的二进制文件格式,否则它不适合我公司的使用。

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

于 2009-05-19T00:46:05.270 回答
0

是的,我在 git 中有一个 doc 目录。我包含一个待办事项列表、一个日历和一些其他文档。

于 2008-08-18T14:30:36.950 回答
0

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

于 2008-08-18T16:08:10.313 回答
0

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

于 2008-08-18T16:22:20.267 回答