我在 SO 上看到了很多关于使用 svn delete 和 --keep-local 标志来将文件保留在本地,同时在存储库中删除它的很好的答案。不幸的是,我无法找到有关该文件在同事更新时是否会从同事计算机上删除的任何信息,因为该文件已从 svn 中删除。
我们有一个项目,其中 eclipse .project 和一些 .settings 文件已提交。我们不希望这样,所以我试图删除它们。如果我在 .project 文件上执行 svn delete --keep-local ,那么我确信它会将其保留在我的系统上,但它会在我同事的系统上将其删除,从而杀死他们的 eclipse项目?
或者,有没有一种方法可以让我 svn:ignore 版本化文件,而不必先将其从源代码管理中删除?
最佳答案
在我的机器上进行的快速测试告诉我,该文件将从其他计算机上删除。这里我在目录 repo
中创建一个存储库和两个工作副本 a
和b
。然后我在 a
中创建并提交一个文件,更新b
,删除--keep-localb
中的文件最后更新a
。 a
中的文件被删除。对于未翻译的 svn 消息,我们深表歉意。
me@mycomp:~/Escritorio/test$ mkdir repo
me@mycomp:~/Escritorio/test$ svnadmin create repo
me@mycomp:~/Escritorio/test$ mkdir a
me@mycomp:~/Escritorio/test$ mkdir b
me@mycomp:~/Escritorio/test$ svn co file:///`pwd`/repo a
Revisión obtenida: 0
me@mycomp:~/Escritorio/test$ svn co file:///`pwd`/repo b
Revisión obtenida: 0
me@mycomp:~/Escritorio/test$ cd a
me@mycomp:~/Escritorio/test/a$ ls
me@mycomp:~/Escritorio/test/a$ touch file
me@mycomp:~/Escritorio/test/a$ svn add file
A file
me@mycomp:~/Escritorio/test/a$ svn ci -m "Adding file"
Añadiendo file
Transmitiendo contenido de archivos .
Commit de la revisión 1.
me@mycomp:~/Escritorio/test/a$ cd ..
me@mycomp:~/Escritorio/test$ cd b
me@mycomp:~/Escritorio/test/b$ ls
me@mycomp:~/Escritorio/test/b$ svn up
A file
Actualizado a la revisión 1.
me@mycomp:~/Escritorio/test/b$ svn delete --keep-local file
D file
me@mycomp:~/Escritorio/test/b$ svn commit -m "Deleting file"
Eliminando file
Commit de la revisión 2.
me@mycomp:~/Escritorio/test/b$ cd ..
me@mycomp:~/Escritorio/test$ cd a
me@mycomp:~/Escritorio/test/a$ ls
file
me@mycomp:~/Escritorio/test/a$ svn update
D file
Actualizado a la revisión 2.
me@mycomp:~/Escritorio/test/a$ ls
me@mycomp:~/Escritorio/test/a$
关于svn - svn delete --keep-local 还会阻止文件在更新时被删除吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5490228/