PHP ile yerel SVN dosya yapılarını yönetme

3 Cevap php

Ben php kullanarak yerel dosya sistemini değiştiren bir geliştirici aracı var. Bu projeler genellikle SVN teslim edilir. Ve yerel olarak bu değişiklikleri yaparken bir kontrol SVN oluşur kırılması - Ben önlemek istiyorum konu versiyonu kontrollü directoires ve hareketli / silme / yeniden adlandırma olduğunu.

Ben de eşleşen dosya sistemi işlemleri gerçekleştirdiğinizde SVN uygulamak için basit bir yolu (taşıma, ekleme, silme, yeniden adlandırma vb) var komutları mı?

Yoksa sadece silmek kolaydır. Svn dirs hamlede bulunursa / hedeflerini yeniden adlandırmak?

Bu açıklığa kavuşturmak için:

Bir yapıya sahip bir kontrol svn:

somedir/
--foo/
--cheese/

Kullanıcı 1 değiştirir onların değişiklikleri svn işlemeye giderken, 'modifiye' (versiyon kontrol altında) 'foo' dir adlandırma (dev aracını kullanarak) bu dosya sistemi yapısı nedeniyle isim değişikliği hata olmaz SVN komutları aracılığıyla yapılıyor.

Bu (genellikle masaüstü makineleri kazanmak veya mac apache çalıştıran) geliştirme sunucular çeşitli üzerinde çalışıyor olabilir

Göz ardı ya da svn kesmek istemiyorum.

3 Cevap

PHP dosyasında, svn aracılığıyla komutları exec() kullanabilirsiniz

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

$Output komutunun çıktısı ve komut başarılı olursa $ExitCode 0 olacaktır.

Güvenlik nedenleriyle exec() komutu, bazı sistemlerde devre dışı olabileceğini, ancak unutmayın. Eğer php.ini dosyasının kontrolü varsa, bunu devre dışı bırakmak / etkinleştirmek için seçebilirsiniz.

Programlı sadece kaldırarak daha iyi olabilir. Svn klasörler. Muhtemelen sadece bir ya da iki kod satır.

Denemek için başka bir şey, neden modülü ihracat Yüklü? Eğer olsun. svn klasörleri dont yolu.

Ayrıca unutmayın Eğer script tüm svn komutları olabilir ve bunları çalıştırmak.

Eğer doğru anladıysam, başka bir (ana) içinde bir sürüm kontrol dizin (köle) var. Neden sadece listesini görmezden svn usta köle dizin eklemek değil mi?

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

Şimdi svn koşarak üzerine eklemek / / master dizininde silmek pisliği köle svn, ikincisi tam fonksiyonel kalarak olmaz.