Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn Subversion:如何对文件进行本地更改*从不*签入,但仍要使其与远程同步?_Svn - Fatal编程技术网

Svn Subversion:如何对文件进行本地更改*从不*签入,但仍要使其与远程同步?

Svn Subversion:如何对文件进行本地更改*从不*签入,但仍要使其与远程同步?,svn,Svn,我有一个包含本地更改的文件,该文件永远不会同步回存储库,因为它仅用于我的本地安装。但是,如果在repo中更改了同一个文件,我希望这些更改能够更新我的本地副本 目前,当我想签入我的更改时,相关文件总是显示在更改列表中,并且我必须手动将其从签入中排除。我如何使它,以便我可以只是更新,与上述限制到位 谢谢:)您可以创建一个预提交挂钩,用于检查文件是否已提交,如果已提交,则中止提交 在这里,您可以看到这种钩子的示例(它检查提交的文件中是否有选项卡。您需要做的只是编写类似的脚本,检查更改的文件列表中是否

我有一个包含本地更改的文件,该文件永远不会同步回存储库,因为它仅用于我的本地安装。但是,如果在repo中更改了同一个文件,我希望这些更改能够更新我的本地副本

目前,当我想签入我的更改时,相关文件总是显示在更改列表中,并且我必须手动将其从签入中排除。我如何使它,以便我可以只是更新,与上述限制到位


谢谢:)

您可以创建一个预提交挂钩,用于检查文件是否已提交,如果已提交,则中止提交


在这里,您可以看到这种钩子的示例(它检查提交的文件中是否有选项卡。您需要做的只是编写类似的脚本,检查更改的文件列表中是否有该文件)。

如果您使用的是OrtoiseSVN,您可以将该文件添加到“提交时忽略”更改列表中

这与svn不同:忽略。该文件将进行版本控制(即,它将存在于存储库中),更新时您将获得更新,但提交时,该文件将显示在单独的列表中,默认情况下未选中。您仍然可以提交文件,但意外提交文件要困难得多

我将此功能用于需要在本地修改但未提交的数据库配置文件

请参阅此处的文档:(搜索提交时忽略)
这并不简单。其他地方有两个几乎相同的问题


您也可以考虑编写一个shell脚本,使用<代码> Svn DIF.<代码>创建一个补丁。移开你的版本;是否执行

svn向上
;并修补新的更新版本。

我想他希望其他人能够登记入住,而不是他自己:)@Raghuram:那就不可能了;-)对于Subversion,这是一个非常常见的问题-请参见。@Avi:尽管看起来很相似-但并不相同…好吧,我承认这是不同的。这似乎仍然是一个很常见的问题,但是,我现在找不到确切的副本。这里有更多的副本:和等等。@Neils:你在使用什么Subversion客户端?我在原来的帖子中没有看到Neils在使用OrtoiseVn?@jgifford25:If=conditional。我相信答案是有用的,尽管是针对特定客户的。更有用的是简单地指向svn:ignore属性,它解决了一个稍微不同的问题。很好,它解决了我的问题。我一直在寻找这个功能。这听起来很有用。您知道TortoiseSVN本身是如何存储和处理这些规则的吗?还是它使用标准的subversion功能并依靠底层的subversion引擎(如tigris)来排除提交时忽略列表中的文件?