2009-09-28 88 views
2

是否可以在不提交文件中的任何其他更改的情况下对SVN进行单个更改?在SVN中提交单个更改

例如,我有一个文件,config.properties,源代码受SVN控制,而且我的本地副本包含了许多与本地环境相关的更改。但是,我想为此文件提交一个新的配置条目,以便我的团队成员可以选择此项,但我不想失去本地更改。

有没有办法做到这一点?

+1

如果它的实用性和功能,你想在一个版本控制系统,比你应该考虑使用Git。 那么你可以使用 混帐添加-i 到一个文件中只承诺的一部分。 – 2009-09-28 17:00:16

+1

我记得当CVS用户给这些关于新的和改进的SVN的评论时。现在SVN变成了CVS: -/ – 2009-09-28 17:04:59

+1

@Artem:每当有人问SVN问题时,至少有一个git狂热者会为他们的Holy Grail(TM)做广告。男孩我讨厌这个垃圾邮件!它早已让我想要检查git。老实说,如果他们觉得有必要不断向我们宣传它的优越性,它会有什么好处呢? – sbi 2009-09-28 18:33:41

回答

3

不,这是不可能的。只需将svn在一个单独的位置签出该文件,然后进行更改并将其合并回其他更改。

+0

这可能是我的最佳选择。我可以将我的项目的两个副本签出到两个单独的位置:〜/ svn/myproject&〜/ svn/myproject-new-commits。 myproject位置是我的工作副本,我可以仅使用myproject-new-commits来提交其他团队成员所需的更改。 – rmcc 2009-09-28 17:12:26

+0

对于每一个“prj”项目我都努力工作,我很快发现自己有一个总是最新的结帐“prj_clean”,并且只是为了做这些小小的改变,需要立即完成,而我正在做一些工作功能需要一两天,直到我可以提交。这样做,您甚至可以使用您最喜爱的差异/合并实用程序将更改从“prj”合并到prj_clean“,并检查它们而不检查您的半成品功能。 – sbi 2009-09-28 18:38:52

4

我建议在svn下有一个模板配置并忽略本地配置。这样你就可以做你想做的事情:更新模板,与本地配置合并,你很好去。

2

这是不可能的。但是,解决方法是:

  • 复制你的修改config.properties安全的地方,你的工作文件夹之外
  • 回复config.properties
  • 仅适用的变化要承诺config.properties
  • 提交config.properties
  • 将您的备份(安全副本)复制到您的工作文件夹中的config.properties中以获取您不想提交的更改
0

在你的具体情况下,我第二次silentghost的建议。我从来没有在配置文件中保存配置文件的活动副本,只有模板文件。这还有其他好处:您不会在更新时意外覆盖您的生产配置文件,您可以将数据库密码等敏感信息保存在存储库中,并且每个人都可以拥有适合其需求/偏好的自己的开发设置。当需要一个新的配置行时,只需将其检入到模板中,并通知其他开发人员需要将其与其本地副本合并。 (或者,也许看看将配置文件抽象为随每个环境(db连接等)而变化的配置文件以及不会改变的配置文件(常量,语言变量等),并且可以成为回购的一部分。

也就是说,对于一般需要合并一行变化到回购,Orbman和jeffamaphone是正确的。(Orbman会得到我的最全面的答案的选票,但是我已经投票给SilentGhost。)