[英]Can I use PHP4 to interact with an SVN repository without a working copy?
我想在SVN存儲庫上執行SVN操作(如果需要的話,通過HTTP),而不需要工作副本。 基本上,這是我想做的事情:
檢查目錄是否遠程存在。
檢查存儲庫中是否存在文件
我一直在嘗試使用自動版本控制方法,但是該方法要求我為WebDAV服務器設置身份驗證,這在我的情況下不理想。 我可以使用FS操作(客戶端是SVN 1.6,這么淺的工作拷貝+命令行會的工作),但是這兩者緩慢和不雅。
是否存在可以執行我所描述的功能的庫(必須在PHP 4.4中才能使用!)?
從很少的經驗中,我對PHP的SVN有所了解:如果您可以從PHP腳本到svn
可執行文件進行命令行訪問,請按照這種方式進行操作。
它總是比協議的PHP實現更快,並且更可靠。
我嘗試過的所有PHP SVN客戶端均存在缺陷,錯誤或完全不穩定。 (不過,我不認識PECL。)
查找svn
命令行,或svn擴展名等效項:
檢查目錄是否遠程存在。
svn info <URL>
如果目錄不存在,請創建它
svn mkdir <URL>
檢查存儲庫中是否存在文件
svn info <URL>
如果文件不存在,請使用我的內容在存儲庫中創建一個新文件
如果沒有工作副本,這將變得更加困難。 您可以創建一個臨時文件,然后:
svn import /tmp/mytempfile <URL>
如果該文件確實存在,請將其內容替換為我指定文件的內容。
svn delete <URL>
緊接着是上面的內容,沒有工作副本就無法修改文件。 請注意,這會導致Subversion的使用情況不太理想。 它旨在存儲更改,而不是文件。 我不建議刪除/導入來更改幾行文本。
這必須使用我提供的作者姓名,而不是經過身份驗證的WebDAV作者(這就是為什么WebDAV方法對我不起作用的原因)
您無法使用webdav提供任意作者名,您無法通過HTTP(S)向遠程服務器進行身份驗證,並且該名稱將用作作者。 如果需要其他名稱,則需要在服務器上創建另一個用戶,並授予該用戶訪問存儲庫的權限。
您可以嘗試以下課程: http : //www.phpclasses.org/browse/package/4270.html
它應該從PHP 3開始工作...
也許PECL :: svn擴展名 ( 手冊 )會做什么?
對於最后一個版本,要求是:
PHP Version: PHP 4.0.0 or newer
似乎有些功能可以滿足您的需求; 例如 :
svn_mkdir
:在工作副本或存儲庫中創建目錄。 但是不確定是否可以為您想要的所有功能提供...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.