在SVN中提交单个更改

在SVN中提交单个更改,svn,Svn,是否可以在不提交文件中任何其他更改的情况下将单个更改提交给SVN 例如,我有一个文件config.properties,受SVN的源代码控制,该文件的本地副本包含许多只与本地环境相关的更改。但是,我想向这个文件提交一个新的配置条目,以便我的团队成员能够获取它,但我不想丢失我的本地更改 有什么方法可以做到这一点吗?不,这是不可能的。只要svn在一个单独的位置签出该文件,并对其进行更改,然后将其合并到其他更改中。我建议在svn下设置一个模板配置,并忽略一个本地配置。这样你就可以做你想做的事情:更新模

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

例如,我有一个文件config.properties,受SVN的源代码控制,该文件的本地副本包含许多只与本地环境相关的更改。但是,我想向这个文件提交一个新的配置条目,以便我的团队成员能够获取它,但我不想丢失我的本地更改


有什么方法可以做到这一点吗?

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

我建议在svn下设置一个模板配置,并忽略一个本地配置。这样你就可以做你想做的事情:更新模板,与本地配置合并,然后你就可以开始了。

这不容易做到。但是,解决办法是:

  • 将修改后的config.properties复制到工作文件夹之外的安全位置
  • 还原config.properties
  • 仅应用要提交到config.properties的更改
  • 提交config.properties
  • 通过工作文件夹中的config.properties复制备份(安全副本),以恢复不希望提交的更改

    • 在你的具体情况下,我支持silentghost的建议。我从不在repo中保留配置文件的实时副本,只保留模板文件。这还有其他好处:您永远不会在更新时意外覆盖您的生产配置文件,您可以将数据库密码等敏感信息保留在存储库之外,每个人都可以拥有适合其需要/首选项的自己的开发设置。当需要新的配置行时,只需将其签入模板,并通知其他开发人员需要将其与本地副本合并。(或者,可以将配置文件抽象为随每个环境(db连接等)变化的配置文件和不变化的配置文件(常量、语言变量等),它们可以是repo的一部分


      这就是说,对于一般需要将一项单行变更合并到回购协议中的情况,Orbman和jeffamaphone是正确的。(Orbman将获得我对最全面答案的投票,但我已经投票给了SilentGhost。)

      如果你想在版本控制系统中使用可用性和特性,而不是你应该考虑使用Git。那么你可以使用Git AD-I只提交文件的一部分。我记得当这样的评论被给予CVS用户关于新的和改进的Svn。现在它是VSN的轮到CVS:-/@ ARTEM:每次有人问一个VSN问题,至少在git狂热者中的e加入并宣传他们的圣杯(TM)我讨厌这种垃圾邮件!我早就想看看git了。老实说,如果他们觉得有必要不断向我们宣传它的优越性,那又有什么好处呢?在决定版本控制系统时,搜索StackOverflow,看看你得到了多少结果:svn=2554,git=1248,cvs=240,performe=119。这告诉我们这句话很费解,或者说是很费钱,或者两者都可能。有趣的是。JavaMaMPON:根据这个逻辑,你也必须得出结论:C语言比C++更难学。显然问题的数量是受主题的流行,而不是困难的影响。这可能是我的最佳选择。将我的项目的两个副本签出到两个不同的位置:~/svn/myproject&~/svn/myproject new commits。myproject位置将是我的工作副本,我可以使用myproject new commits仅用于提交其他团队成员所需的更改。对于每个项目“prj”我做了一个,我很快发现自己有一个“prj_clean”签出,它总是最新的,只是为了在我做一些功能时立即做这些小的更改,而这些功能需要一两天才能提交。这样做,你甚至可以使用你最喜欢的diff/merge实用程序来合并来自“prj”的更改“prj_clean”并将其签入,而无需签入未完成的功能。