簡體   English   中英

我可以在沒有工作副本的情況下使用PHP4與SVN存儲庫進行交互嗎?

[英]Can I use PHP4 to interact with an SVN repository without a working copy?

我想在SVN存儲庫上執行SVN操作(如果需要的話,通過HTTP),而不需要工作副本。 基本上,這是我想做的事情:

  1. 檢查目錄是否遠程存在。

    • 如果目錄不存在,請創建它
  2. 檢查存儲庫中是否存在文件

    1. 如果文件不存在,請使用我的內容在存儲庫中創建一個新文件
      • 這必須使用我提供的作者姓名,而不是經過身份驗證的WebDAV作者(這就是為什么WebDAV方法對我不起作用的原因)
    2. 如果該文件確實存在,請將其內容替換為我指定文件的內容。

我一直在嘗試使用自動版本控制方法,但是該方法要求我為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM