2012-02-02 28 views
6

Tek kişilik bir tek klasörlü mükerrer deponum var. Sadece dosya eklemek çalışıyorum eğer, Şimdi buMercurial dizin yapısını değiştirme

P104 
    lecture_notes 
    files under version control live here (.hg is here) 
    homework 
    more files under version control 

gibi

P104 
    lecture_notes 
    files under version control live here 

ben depo içinde iki dizin olmasını istiyorsanız fark Bir süre sonra: dizin yapısı basittir depo, başarısız:

[email protected]:~/P104/lecture_notes$ ll .. 
total 16 
drwxr-xr-x 4 br br 4096 2012-02-02 18:05 ./ 
drwxr-xr-x 4 br br 4096 2012-02-01 20:46 ../ 
drwxr-xr-x 2 br br 4096 2012-02-02 17:44 homework/ 
drwxr-xr-x 4 br br 4096 2012-02-02 18:06 lecture_notes/ 
[email protected]:~/P104/lecture_notes$ hg add ../homework/hw1_P104.tex 
abort: ../homework/hw1_P104.tex not under root 

Benim ilk fikir, dizin yapısında repo bir üst gruba klonlamak klon dosya eklemek ve orijinal repo silmek oldu. Ama klonlama başarısız:

[email protected]:~/P104/2011/lecture_notes$ hg clone . .. 
abort: destination '..' is not empty 

Yani soru var başka bir yerde temiz bir depo oluşturmak yerine bu diğer yapmanın Mercurial-imsi yoludur ve kopyalama dosyalarını manuel olup olmadığıdır? senin Mercurial repo kök dizin ~/P104/lecture_notes altındaysa

+1

+1 - Sürüm denetimini öğrenmek için ne harika bir yol. ;) – jmort253

cevap

4

, ben tercih ederim:

  1. yeni alt- bir alt dizine yapmak
  2. P104
  3. içine lecture_notes
  4. hareket mevcut tüm dosyaları lecture_notes adlandırmak dizin
  5. homework ve onun dosyalarını yeniden adlandırılmış P104 dizinine ekleyin
  6. hg add everythi ng

fikir değiştirildi dizin içinde dosya nerede olduğunu .hg repo tutmak (~/P104/lecture_notes~/P104/P104 içine değiştirildi) ve yeniden organize etmektir.
Klonlamaya gerek yoktur.

+0

Gerçekten basit. Teşekkürler! –

7

.hg klasörünü taşımadığınız VonC'nin çözümünü beğeniyorum. Bu doğru bir çözüm. İşte bunu hareket yapmak ve böylece daha az sayıda klasörleri yeniden adlandırmak zorunda bir alternatiftir:

  1. taşı .hg klasör yukarı Mercurial perspektifinden bakıldığında ~/P104

    $ mv ~/P104/lecture_notes/.hg ~/P104 
    

    için, size sahip olacaktır tüm üst düzey dosyaları bir lecture_notes dizinine taşıdı. Ayrıca, homework klasöründe yeni yeniden izlenmeyen dosyalar da olacaktır.

  2. yeniden adlandırır dışarı Mercurial rakam verelim:

    $ hg addremove 
    

    Bu doğru şimdi önce üst düzey dosyaları vardı dosyalar lecture_notes dizinde yaşadığı algılar. homework'daki takip edilmemiş (ve göz ardı edilmemiş) dosyalar eklenmiştir.

  3. kaydet değişiklikler:

    genel "hile" çalışma kopyasında dosyalar .hg dizinine göreli görülüyor olmasıdır
    $ hg commit 
    

. Bu nedenle, dosya sistemi hiyerarşisinde .hg dizinini yukarı taşıyarak, çalışan kopyayı çalışma kopyası içindeki hiyerarşide aşağı doğru hareket ettiririz.

+1

teşekkürler! Addremove hakkında bilmek güzel. Bir dahaki sefere bu sorunu yaşıyorum, bu çözümü kullanacağım (VonC'nin el ile hg add 've' hg remove' dosyalarını elimden aldım) –