如何从subversion中删除临时文件,但将副本保留在我的本地文件夹中?

时间:2011-07-06 20:15:29

标签: svn svnignore

当我们搬到SVN时,我们只在subversion中包含了文件夹中的所有内容和所有内容。我想排除文件夹中的所有日志文件。

我在Ubuntu上。

thinkcode@myserver:~/Project1/Log/*.txt

所有.txt文件都在subversion上,这些日志文件是每天创建的。我想从subversion中删除它们,但将它们保留在我的Log文件夹中。

svn propedit svn:ignore ./some_path似乎无法解决问题。新的* .txt文件仍显示为“?”在做svn status时。我在新文件夹上尝试了它,我得到了svn: 'c.txt' is not under version control

非常感谢任何潜在客户!

3 个答案:

答案 0 :(得分:3)

首先,你是什么意思在Subversion

让我们澄清一下:

  • Subversion有一个存储所有文件和版本的地方。这是存储库。您永远不会看到存储库的实际目录结构,并且您可能没有读/写访问权限。

  • 您将文件夹从存储库签出到本地工作目录工作目录反映了存储在Subversion存储库中的各种文件和目录的特定版本。但是,您可以访问它们。如果您对其中一个进行更改并提交它们,则您已更新了存储库。


好的,现在我们已经解决了这个问题,我将假设您所谈论的文件位于本地目录上,但不在中源存储库。这是对的吗?

在这种情况下,svn:ignore应位于日志文件所在的目录中,并且应具有值“* .txt”。你可以这样做:

$svn propset svn:ignore "*.txt" .

请注意 * .txt 周围的引号的使用。在这种情况下他们是必需的。这样做可以防止该目录中的新文件与svn的glob模式匹配时显示:当执行svn status时忽略。如果您只是说svn add

,也不会添加它们
$ svn add

但是,如果文件已存在于存储库中,则svn:ignore属性将不执行任何操作。如果要从存储库中删除文件,但将它们保存在本地磁盘上,则可以执行以下操作:

$ svn delete --keep-local (files to delete)

答案 1 :(得分:1)

svn状态'?'表示项目不受源代码管理。 svn status将列出当前目录下所有受源代码管理且已被修改的文件或任何不受源代码管理的文件。

因此,如果它仍然在您的本地目录中,您已经实现了您想要的目标。

答案 2 :(得分:0)

需要两个操作,删除和忽略。首先标记要删除的所有文件。然后提交。之后应用ignore,并确保以递归方式应用它。