SVN:忽略已经提交的文件

我有一个使用Subversion版本控制的设置文件。 每个人都有自己的这个文件的副本,我不需要承诺。 但是,正如我所说,版本控制下已经有一个副本。 我的问题是: 如何从版本控制中删除此文件,而不删除所有人的文件,然后将其添加到忽略列表,所以它不会被提交? 我使用的是Linux命令行svn。

Solutions Collecting From Web of "SVN:忽略已经提交的文件"

做一个干净的签出, svn delete文件并添加忽略。 然后提交这个。 其他人都必须小心(一次)他们的本地副本不会被删除在下一个svn update ,但在此之后,本地文件将保持不受干扰,并被SVN忽略。

如果您从版本控制中删除文件,那么开发人员在初始结帐后如何重新使用该项目(或意外删除其本地副本的人员)? 如果添加到设置文件会怎么样?

我会建议如下:在SVN中保留一个默认设置文件(没有密码,主机名,连接字符串等),将其命名为settings.dist ,并让代码与这个命名settings的副本一起工作。 每个开发者都必须复制一次,然后才能使用她的个性化设置。 如果有添加,将它们添加到settings.dist – 其他人将获得更新,然后可以合并到她的个性化副本。

删除文件后,用户将不得不使用svn export从存储库中恢复文件。

 $ svn export -rx path ./ 

其中x是文件在删除之前已存在的修订版本, path是文件的完整路径,而./是文件的放置位置。

有关更多信息,请参阅svn help export

我有一个类似的问题。 在我的情况下,它是一个自动生成的用户设置文件(Visual Studio),它是在项目的早期意外检查的。 虽然只是删除它可能会起作用,但从历史中删除它似乎更为correct ,因为它从来不应该放在那里。

我遇到这个问题,这可能是一个新的功能,因为这个问题原来是7.5年前发布的:

https://stackoverflow.com/a/6025750/779130

看起来像一个想法将是:

 1) create a dump of the project. 2) filter the dump using `svndumpfilter` to exclude the unwanted file(s). 3) load the dump as a new project. 

这可能是彻底摆脱文件的唯一方法。 在大多数情况下,“删除和忽略”方法可能已经足够好了。

只需定义一个包含将覆盖默认值的设置的文件即可。 这个文件没有被签入Subversion,每个开发者都负责根据他们的环境维护这个文件。

在一个基于Ant的世界里,你将拥有这些文件:

 settings.properties settings-local.properties (ignored for Subversion) 

和你的build.xml文件中

 <property file="settings-local.properties"/> <property file="settings.properties"/> 

对于那些不能连接点的人:

  1. 像建议的那样修改build.xml文件
  2. 将settings-local.properties设置为忽略
  3. 在构建的init目标中,将settings.properties复制到settings-local.properties
  4. 等待几天,直到每个人都有机会运行这个目标
  5. 从Subversion中删除setting.properties

每个开发人员都有自己的setting-local.properties,一切都是自动完成的(没有开发人员丢失了他或她的设置,如果你从Suvbersion中粗暴地删除文件,并且没有“其他人将不得不小心处理, ..“)

[[ 我是颠覆新手,所以也许这是没有道理的。 标记为wiki – 如果您知道正确的答案,请在后面的部分中添加 ]]

难道你没有一个自定义的结帐步骤,所以每个用户获得不同的设置文件夹?

 $ svn checkout http://example.com/project project .. $ dir project original_settings\ folder1\ folder2\ $ svn checkout http://example.com/project/aaron_settings project\settings .. $ dir project original_settings\ folder1\ folder2\ settings\ 

或为新用户

 $ svn import project\settings http://example.com/project/aaron_settings 

我得到的是你希望每个用户有一个自定义视图的存储库。 在其他版本控制系统中,您可以设置一个自定义列表,列出您正在使用哪些项目,哪些不是您以及放置在奇怪位置的项目。

这是否在颠覆工作? 上面的代码看起来很危险,但也许我做错了。

WIKI:

(还没有)