我有一个开发人员工具,可以使用php修改本地文件系统。这些项目经常从SVN检出。我想避免的问题是版本控制的指令的移动/删除/重命名 - 以及在本地进行这些更改时签出的SVN发生的破坏。
当我还执行匹配的文件系统操作时,是否有一种简单的方法来应用SVN命令(移动添加,删除,重命名等)?
或者,如果在移动/重命名目标中找到.svn目录会更容易吗?
澄清一下:
签出的svn结构为:
somedir /
--foo /
--cheese /
用户1改变这个文件系统结构(使用开发工具),将'foo'目录(受版本控制)重命名为'modified',当他们去提交他们的更改时,svn会因为更改而出错名字不是通过SVN命令完成的。
这可以在各种开发服务器上运行(通常是在win或mac上运行apache的桌面计算机)
不要忽略或断开svn。
答案 0 :(得分:1)
以编程方式,您可能最好只删除.svn文件夹。它可能只有一两行代码。
要尝试的另一件事,为什么不导出模块?这样你就不会得到.svn文件夹了。
另请注意,您可以编写所有svn命令的脚本并运行它们。
答案 1 :(得分:1)
在PHP文件中,您可以通过svn
exec()
命令
<?php
$Output = '';
$ExitCode = 0;
exec('svn mv "'.$Current.'" "'.$New.'"', $Output, $ExitCode);
$Output
是命令的输出,如果命令成功,$ExitCode
将为0
。
但请记住,出于安全原因,某些系统上可能会禁用exec()
命令。如果您可以控制php.ini
文件,则可以选择启用/禁用它。
答案 2 :(得分:0)
如果我理解正确,则在另一个(主)中有一个版本控制目录(从属)。为什么不直接将slave目录添加到master svn ignore list?
svn propset svn:ignore slave .
svn ci . -m 'Added ignore dir'
从现在开始在主目录中运行svn up / add / delete不会搞乱slave svn,而后者仍然完全正常运行。