SVN:忽略已提交的文件

时间:2009-04-03 14:59:28

标签: linux svn version-control

我有一个使用subversion进行版本控制的设置文件。每个人都有自己的这个文件的副本,我需要这个不被提交。但是,就像我说的那样,版本控制下已有一个副本。我的问题是:如何从版本控制中删除此文件而不删除每个人的文件,然后将其添加到忽略列表中以便它不会被提交?我正在使用linux命令行svn。< / p>

6 个答案:

答案 0 :(得分:22)

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

答案 1 :(得分:15)

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

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

答案 2 :(得分:1)

删除文件后,您的用户必须使用svn export从存储库中恢复该文件。

$ svn export -r x path ./

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

有关详细信息,请参阅svn help export

答案 3 :(得分:0)

只需定义一个包含将覆盖默认设置的设置的文件。此文件未检入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. 将setting-local.properties设置为忽略
  3. 在您的构建的init目标中,将settings.properties复制到settings-local.properties
  4. 等待几天,直到每个人都有机会运行此目标
  5. 从Subversion
  6. 删除setting.properties

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

答案 4 :(得分:0)

我有类似的问题。在我的例子中,它是一个自动生成的用户设置文件(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.

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

答案 5 :(得分:-4)

[[我是颠覆的新手,所以也许这没有意义。将此标记为维基 - 如果您知道正确的答案,请在后面的部分中附上]

您是否有自定义的结帐步骤,以便每个用户获得不同的设置文件夹?

$ 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:

(还没有)