首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SVN原子提交操作指南

SVN原子提交操作指南
EN

Stack Overflow用户
提问于 2009-05-03 10:15:36
回答 3查看 1.6K关注 0票数 8

我所在的位置: Linux命令行

我现在遇到的问题是:

有时我不能进行原子提交(包括一个特定票证/任务所需的所有修改),因为我们在存储库中有一些文件,这些文件的内容在本地开发环境中会有所不同。

例如:database.xml (dbname、username、password等)。我在本地环境中修改了这个文件,每次需要提交/签入时,我都会手动列出提交所需的所有文件/文件夹(本地修改的文件除外)。

也许这是一个错误的设计决策,必须将database.xml从存储库中删除并更改为database.xml.template (存储在SVN中),所以在手动执行svn add之前,此文件将不会包含在提交中?也许这是一种错误的方法--将所有这些与环境相关的信息存储在存储库中--在这种情况下,我们可以通过提交修改后的配置来破坏一切,例如。

据我所知,svn:ignore属性在这种情况下无能为力,因为它只能用于没有存储在存储库中的文件。

如何解决这个问题呢?

附注:我使用的是Ubuntu,主要是SVN的纯命令行。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-03 10:26:47

这样做的“标准”过程是这样的(请原谅SVN语法,我最近一直在使用Bazaar ):

代码语言:javascript
复制
echo config > database.xml.template
svn add database.xml.template
svn ignore database.xml
svn commit

然后在每个人的开发机器上:

代码语言:javascript
复制
svn checkout
cp database.xml.template database.xml
...edit database.xml...

当他们承诺的时候,

代码语言:javascript
复制
echo foo > someotherfile
svn commit

database.xml文件不会添加到Subversion中。

票数 8
EN

Stack Overflow用户

发布于 2009-05-03 10:22:26

您应该将模板存储在存储库中,而不是需要在本地修改的实际文件。

这样,如果需要,您可以重新构建原始文件,而无需冒险将文件存储到不应该存在的存储库中。

不,svn:ignore在这里不会对你有帮助。

票数 6
EN

Stack Overflow用户

发布于 2014-08-11 16:03:35

我的2点意见:首先,你需要确保是否有任何(简单的)方法来协调你的项目中涉及的所有开发人员的路径。这可能是相同的相对目录结构,也可能是你的应用程序中的某个薄层,它支持一些外壳变量,如$home、%USERPROFILE%等。随着时间的推移,这将比让每个开发人员处理自己的未版本化配置要方便得多,这也是IDE试图提供的。

一般来说,版本控制配置文件对我来说是非常好的,这只是一个开发人员花在设置上的时间,不应该意外地丢失。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/816732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档