svn: bagajın belirli revizyonundan bir dal nasıl oluşturulur


116

Aşağıdaki eylem yalnızca gövdenin baş revizyonundan bir dal oluşturacaktır. Belirli bir revizyondan nasıl şube oluşturabilirim? Teşekkürler.

$ svn copy http://svn.example.com/repos/calc/trunk \
       http://svn.example.com/repos/calc/branches/my-calc-branch \
  -m "Creating a private branch of /calc/trunk."

2
Sadece iki ters eğik çizginin () satırsonu karakterlerini görmezden gelmek için var olduğunu ve svn komutunun bir parçası olmadığını not etmek için
Harry Lime

Yanıtlar:


163

Yardım komutuna bakın:

svn help copy

  -r [--revision] arg      : ARG (some commands also take ARG1:ARG2 range)
                             A revision argument can be one of:
                                NUMBER       revision number
                                '{' DATE '}' revision at start of the date
                                'HEAD'       latest in repository
                                'BASE'       base rev of item's working copy
                                'COMMITTED'  last commit at or before BASE
                                'PREV'       revision just before COMMITTED

Örneğinizi kullanarak bunu komut satırında gerçekten belirtmek için:

svn copy -r123 http://svn.example.com/repos/calc/trunk \
    http://svn.example.com/repos/calc/branches/my-calc-branch

123Kopyalamak istediğiniz bagajdaki revizyon numarası nerede olacaktır. Başkalarının da belirttiği gibi, @ sözdizimini de kullanabilirsiniz. Kişisel olarak, revizyon numarasının URL'den daha net ayrılmasını tercih ederim.

Yardımda belirtildiği gibi, bir revizyon numarasını belirli kelimelerle de değiştirebilirsiniz:

svn copy -rPREV http://svn.example.com/repos/calc/trunk \
    http://svn.example.com/repos/calc/branches/my-calc-branch

"COMMITTED'den hemen önceki revizyonu" kopyalar.


Ayrıca, yukarıdaki örnekte, 123altta revizyon gerçekleşmediyse trunk, copy ...trunk@123 ...sözdizimi başarısız olabilir Path ...trunk@123 does not exist in revision 768( 768en son repo nerede ), oysa -r 123doğru olanı yapacaktır. Eski SVN istemcilerinde gözlemlendi, 1.6'da durum hala geçerli olabilir veya olmayabilir.
vladr

3
-RREV argümanı her zaman çalışmaz. Bazen @ REV'e ihtiyacınız vardır. Bkz stackoverflow.com/questions/6591938/...
Mojca

1
-r, Homebrew aracılığıyla Mac OS X'te svn sürüm 1.7.13 (r1516569) ile çalışır.
kakyo


19

düzeltmeyi bir "@" karakteri kullanarak ekleyin:

svn copy http://src@REV http://dev

Veya -r [--revision] komut satırı bağımsız değişkenini kullanın.


Bunun için teşekkürler. Man sayfasındaki köşeli parantezlerin gerekli olup olmadığı anlaşılamadı. EBNF kullandıklarını anlamalıydık.
rstackhouse

0

Aşağıdakini deneyin:

svn copy http://svn.example.com/repos/calc/trunk@rev-no 
       http://svn.example.com/repos/calc/branches/my-calc-branch 
  -m "Creating a private branch of /calc/trunk."  --parents

Svn URL'leri arasında eğik çizgi "\" yok.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.