2009-02-17 60 views
1

我有一個開發者工具,使用php修改本地文件系統。這些項目通常從SVN中檢出。我想避免的問題是版本控制的directoires的移動/刪除/重命名 - 以及在本地執行這些更改時檢出的SVN發生的破壞。用PHP管理本地SVN文件結構

當我還執行匹配的文件系統操作時,是否有簡單的方法來應用SVN命令(移動添加,刪除,重命名等)?

或者,如果在移動/重命名目標中找到,刪除.svn dirs更簡單嗎?

爲了闡明這一點:

甲檢出具有的結構的svn:

somedir/
--foo/
--cheese/

用戶1個改變了這種文件系統結構(使用開發工具),將'foo'dir(在版本控制之下)重命名爲'modified',當他們去提交他們的修改時,svn會由於名稱改變沒有通過SVN命令完成而出錯。

這可能對各種開發服務器(通常運行在Win和Mac阿帕奇台式機)的

不想忽略或從SVN斷開運行。

回答

1

在你的PHP文件,你可以通過exec()

<?php 
$Output = ''; 
$ExitCode = 0; 
exec('svn mv "'.$Current.'" "'.$New.'"', $Output, $ExitCode); 

$Output使用svn命令就是命令的輸出和$ExitCode0如果命令是成功的。

但請記住,出於安全原因,某些系統上可能會禁用exec()命令。如果您控制了您的php.ini文件,您可以選擇啓用/禁用它。

+0

我會看看我們的本地機器上的運行命令感謝那 – 2009-02-18 01:04:59

1

以編程方式您可能會更好,只是刪除.svn文件夾。它可能只是一兩行代碼。

另一件嘗試,爲什麼不出口模塊?這樣你就不會得到.svn文件夾。

另請注意,您可以編寫所有svn命令並運行它們。

0

如果我理解正確,在另一個(主)中有一個版本控制目錄(從屬)。爲什麼不直接添加slave目錄到主svn忽略列表?

svn propset svn:ignore slave . 
svn ci . -m 'Added ignore dir' 

從現在開始使用svn上/添加/刪除在主目錄不會弄亂從SVN,而後者剩餘的全部功能。