2017-08-03 32 views
7

Soruma benzer Mercurial: List all unmerged branches ancak SVN için, Mercurial değil.Subversion: Tüm aktif, dallanmamış dalların listesi nasıl alınır

Şu anda açık olmayan tüm şubeleri (genellikle gövde) listelemenin bir yolunu bulmalıyım. birleştirilmemiş revizyonlar listesi için soran

farkındayım kadarıyla Git eşdeğer özellik git branch --no-merged ve netleştirme için

git branch --merged, ben değilim değil, diğer birçok StackOverflow soru var gibi geçmişte sordu.

Henüz birleştirilmemiş olan tüm etkin dallarını listeleyebilen bir çözümü kabul edeceğim. Bu mümkün değilse, tüm aktif, birleştirilmiş dalları listeleyen bir yanıt kabul edip, geriye doğru çalışmamı sağlar. Örneğin

, ben repo/trunk çıkıyorum ve repo bu şubesi varsa:

  • repo/branches/b1

    önceki içinde silindi
  • repo/branches/b3 birleştirildi gövde
  • repo/branches/b2 birleştirilecek edilmemiştir revizyon ve birleştirilen sonra silindi
  • repo/branches/b4 birleşti değildi

Çözümünüz b1 veya b2'yi döndürmeli, ancak asla b3 veya b4'e dönmemelidir.

svn list repo/branches/ -r HEAD 

Ve sonra, sonuçları üzerinden döngü var ve mergeinfo kontrol edin:

+0

Bir senaryoyu "etkin" yapan bir senaryoyu senaryoda tanımlayabilir misiniz? Son işlemler Dalından beri en az bir taahhüt var mı? –

+0

@PatrickQuirk Şube revizyonunda mevcutsa bir şube aktif olarak kabul edilebilir. – BoffinbraiN

+0

Bir repo/branch/'içindeki tüm dizinleri listeleyen bir betik/batch oluşturmaya çalıştınız ve daha sonra birleştirilmesi gereken herhangi bir şey varsa, 'svn mergeinfo' ile her birini kontrol ettiniz mi? – royalTS

cevap

1

Öncelikle, BAŞ revizyon listesine tüm şubeleri almak zorunda. Ben birleştirmek için ilk revizyon mevcut görmeden bize çıkmak istiyor, çünkü burada revizyon altyordamını: Bir kullanıyorum

@echo off 

for /f %%b in ('svn list repo/branches -r HEAD') do call :revisions %%b 

exit /b 

:revisions 
for /f %%r in ('svn mergeinfo --show-revs eligible repo/branches/%1 repo/trunk') do (
    echo repo/branches/%1 
    exit /b 
) 

: Burada kadar * .bat dosyası kaydedebilen bir komut dosyasıdır. Bu yüzden bu program çift dalları basmayacaktır.

+0

Komutunuz, HEAD'deki tüm şubeleri gösterecektir. Bunu yapmak oldukça basit. Ancak, ihtiyacım olan şey bu değil. Sadece bu dalların gövdeye birleştirilmemiş bir alt kümesini görmek istiyorum. – BoffinbraiN

+0

Benim hatam. Çözümü düzelttim. – Przemek

+0

Güzel bitti! Bunu yeni SVN repo'mızda (listede yer alan) yeni bir şube oluşturarak ve ardından gövdeye birleştirerek (listenin düşmesine neden olarak) test ettim. Böyle devam etmeyi sürdürün ve hiç vakit kaybetmeden çok sayıda temsilcisi olacak. :) – BoffinbraiN

İlgili konular