Ben çalışan bir kopya olmadan bir SVN deposu ile etkileşim PHP4 kullanabilir miyim?

4 Cevap php

Ben (bu konularda, HTTP üzerinden) çalışan bir kopyasını gerektirmeden SVN depo SVN işlemleri gerçekleştirmek istiyoruz. Temelde, burada yapmak istediğim şeyler var:

  1. Bir dizin uzaktan varsa kontrol edin.

    • Dizin yoksa, bunu oluşturmak
  2. Bir dosya deposunda olup olmadığını kontrol edin

    1. if the file does not exist, create a new file in the repository with my content
      • Bu benim sağlayan bir yazar değil, isim (WebDAV yaklaşımı benim için çalışmıyor neden) doğrulanmış WebDAV yazar kullanmak zorunda
    2. Dosya varsa, benim, belirtilen dosyanın içeriği ile içeriğini değiştirmek.

Ben autoversioning yaklaşımı kullanmaya çalışıyorlar, ama bu yöntem benim koşulda daha az ideal bir WebDAV sunucusu için kimlik doğrulaması ayarlamak için beni gerektirir. Ben FS işlemleri kullanabilirsiniz (istemci SVN 1.6 olduğunu, bu nedenle sığ çalışma kopyalar + komut satırı would iş) ama yavaş ve çirkin hem de bulunuyor.

Ben tarif ne yapabilirim (PHP 4,4 kullanılabilir OLMALIDIR!) Bir kütüphane var mı?

4 Cevap

Ne az deneyim itibaren ben PHP SVN uğraşmaya var: Eğer svn çalıştırılabilir PHP komut komut satırı erişimi varsa, bu şekilde gidin.

Her zaman protokolün bir PHP uygulama daha hızlı, ve daha güvenilir.

Ben denedim tüm PHP SVN müşteriler kusurları, hataları vardı, ya da tamamen titrek. (Gerçi PECL birini bilmiyorum.)

: svn komut kullanmak veya svn uzatma eşdeğer bul

bir dizin uzaktan varsa kontrol edin.

svn info <URL>

Dizin yoksa, bunu oluşturmak

svn mkdir <URL>

Bir dosya deposunda olup olmadığını kontrol edin

svn info <URL>

dosya mevcut değilse, benim içeriği ile depodaki yeni bir dosya oluşturmak

Bu bir çalışma kopyası olmadan zordur. Sen bir geçici dosya oluşturmak ve sonra olabilir:

svn import /tmp/mytempfile <URL>

Dosya varsa, benim, belirtilen dosyanın içeriği ile içeriğini değiştirmek.

svn delete <URL>

Yukarıdaki ardından, çalışan bir kopyası olmadan bir dosyayı değiştiremezsiniz. Bu Subversion'ın çok optimal kullanımına neden olduğunu not edin. Bu değişiklikleri değil, dosyaları saklamak için tasarlanmıştır. Ben metin birkaç satır değiştirmek için bir silme / ithalat tavsiye etmem.

Bu benim sağlayan bir yazar değil, isim (WebDAV yaklaşımı benim için çalışmıyor neden) doğrulanmış WebDAV yazar kullanmak zorunda

WebDAV kullanarak keyfi bir yazar adı sağlayamaz, uzak sunucuya HTTP (S) üzerinden kimlik doğrulama, ve bu isim yazar olarak kullanılır. Başka bir isim gerekiyorsa, sunucu üzerindeki başka bir kullanıcı oluşturmak ve depo için bu kullanıcı erişimi vermek gerekir.

Bu sınıf deneyebilirsiniz: http://www.phpclasses.org/browse/package/4270.html

Bu sözde PHP 3 başlayan çalışıyor ...

Belki PECL::svn extension (manual) yapardı?

Son sürümü için, gerekliliktir:

PHP Version: PHP 4.0.0 or newer


And it seems there are functions that could do what you want ; for instance :

Ama emin değilim everything istediğiniz fonksiyonlar olsa da, bir ...