【问题标题】:Do you use version control other than for source code? [closed]除了源代码之外,您是否使用版本控制? [关闭]
【发布时间】:2008-08-18 13:30:21
【问题描述】:

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

【问题讨论】:

    标签: svn version-control cvs


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      我还听说有人对其主目录使用版本控制系统。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

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

            【讨论】:

              【解决方案6】:

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

              【讨论】:

                【解决方案7】:

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

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

                【讨论】:

                  【解决方案8】:

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

                  【讨论】:

                    【解决方案9】:

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

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

                    我将它用于:

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

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

                    【讨论】:

                    • 嗨,Thomas,您能详细解释一下“我的密码数据库”位吗?你什么意思?
                    • 也许他说的是 KeePass 数据库。
                    【解决方案10】:

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

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

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

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

                    【讨论】:

                      【解决方案11】:

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

                      软件工程师参与其中,但机械工程师对此有些抵触。例如,他们希望使用 Excel 的同步协作编辑功能。他们还没有适应获取锁定、修改、提交的工作流程。

                      TortoiseSVN 可让您区分 Word 文档,我发现它非常有用。它显然也支持合并,虽然我太胆小了,不敢尝试这个功能......

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

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

                      【解决方案12】:

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

                      【讨论】:

                        【解决方案13】:

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

                        【讨论】:

                          【解决方案14】:

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

                          【讨论】:

                            猜你喜欢
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 2010-09-05
                            • 2012-03-24
                            • 2011-05-30
                            • 1970-01-01
                            • 1970-01-01
                            • 2012-01-11
                            相关资源
                            最近更新 更多