2012-07-04 43 views
5

İşyerinde svn'yi sunucuda kullanıyoruz ama git yerel olarak kullanıyorum (git-svn ile) paylaşmaya hazır olmayan hız/dallanma/bağlılıklardan faydalanmak için.Yerel bir, "git push --mirror" veya "uzak güncelleştirmeye git" yedeklemesiyle bir yedek git deposunu nasıl saklarsınız?

Bu iyi çalışıyor, ancak bir şeylerin yanlış gittiği durumlarda bilgisayarımdaki değişikliklerin sadece bir günlüğüne geçmesi beni rahatsız ediyor. Dosya paylaşımımıza özel bir yedek repo almayı sevdim.

Böyle bir komutu kullanarak benim yerel repo bir kopyasını oluşturduk:

git clone --mirror MyRepo z:/MyRepo.git 

ve bununla benim yerel bir uzaktan kumanda olarak bu ekledik:

git remote add backup z:/MyRepo.git 

iyi nedir yedekleme havuzunu günün sonunda yerel olanımla senkronize etme yolu

Aşağıdakilerden birini düşünüyorum, ancak bunların eşdeğer olup olmadıklarını ya da ticaretin ne olduğunu bilmiyorlar. Yerel depo olarak

  1. : git remote update

Ya gerçekten daha iyi bir yolu olup olmadığını:

  • Veya yedekleme depoda git push --mirror backup?

  • +0

    Bir cron işi içinde .git dizininizin gece rsync'i gibi bir şey, bir yedekleme çözümü olarak git'in kendisini kullanmaktan daha uygun olabilir. Manuel bir yöntem arıyorsanız, 'git push --mirror 'çıplak bir depoya yapar. – meagar

    +0

    Maalesef, her gece, her gece kilitli olması gereken dizüstü bilgisayarlarımız var, böylece cron iş yolunu alamıyorum. Şu anda git itme şey yapıyor, sadece seçenek 2 aslında aynı olup olmadığını bilmek istiyorum. – Argos

    +0

    'git push --mirror backup' kullanıyorum (yedekleme uzaktaki yedek gitme noktasıdır). Ben daha sonra 'git fetch yedekleme refs/remotes/*: refs/remotes/*' yanı sıra bazı git-svn resync şeyler çalıştıran o yedeklemeden geri yüklemeye ihtiyacım varsa yazdığım bir betik kullanıyorum tüm SVN sunucusunu, tüm projelerimi taşıyabilmek için birkaç gün sürdü ve sadece dakikalar alıyor - eğer varsa - yedeklemekten klonlanmak ve yenilenmek için). –

    cevap

    0

    SVN deposu olan sunucuya erişiminiz varsa, aşağıdaki şemayı kullanabilirsiniz: SVN deposuna SubGit'u yükleyin (sunucuda SVN deposuyla sürekli olarak senkronize olacak bir Git deposu oluşturacaktır) SVN deposuna bir Git arayüzü olarak düşünebilir). Ardından, her zaman bir Git deposuymış gibi, git-svn yerine salt Git arabirimini (çekme, basma) kullanın. Tüm değişiklikler otomatik olarak SVN ile senkronize edilir. Bu yaklaşım, tanımladığınızdan biraz farklıdır, çünkü sunucunuzdaki yansıma doğrudan sahip olduğunuzdan, ancak sizin için ilginç olabilir.

    +0

    Korkarım ki SVN sunucusuna erişimim yok, güzel bir çözüm olurdu. – Argos