2013-01-08 8 views
10

Zainstalowałem git dla Windows i działa dobrze (np. Użyj jednego z następujących rozwiązań: Want to download a Git repository, what do I need (windows machine)?).Jak korzystać z narzędzia Google repo w systemie MS Windows?

I tried to use repo of google ale potrzebuje gpg i python 2.7. Zainstalowałem oba i działa dobrze Jedynym problemem jest to, że skrypt repo używa niektórych funkcji zorientowanych na uniks, takich jak dowiązania symboliczne i fcntl. Czy istnieje jakiś alternatywny kod dla systemu Windows: repo?

nie mogłem znaleźć jakieś natywne rozwiązanie przez Google. jeśli takowy istnieje, spróbuję wepchnąć go do repozytorium git google repo lub spróbować go użyć jak jest.

+0

FYI, jeśli starasz się zbudować Android w systemie Windows, [to nie jest obsługiwana] (http://source.android.com/source/initializing.html). –

Odpowiedz

7

Tak, skrypt Google repo może być zgodny z systemem Windows. Wykonaj poniższe kroki.

Ale wcześniej, jak Borealid powiedział repo jako nie zostały przeniesione w systemie Windows. repo (forall.py) używa fcntl that is not available on Windows (Unix only).

Jednak istnieje Cygwin i jego własne narzędzia python i git.

Jeśli dla Ciebie jest wersja git z MSysGit lub jeśli kochasz swój GUI git bazujący tylko na MSysGit, wykonaj następujące kroki. Te kroki zapewniają, że Cygwin can create native NTFS symlinks. Inaczej, jeśli git od Cygwin jest wystarczająca, nie musisz tego robić. Ale lepiej jest, gdy ustawienie CYGWIN=winsymlinks:native mówi Cygwin, aby używał macierzystych dowiązań NTFS zamiast starego obejścia Cygwin.

  1. Użyj systemu Windows Vista lub nowszy (lub przełączyć się na Linuksa) przywilejów
  2. Mając uprawnienia administratora
  3. ściągnięcie i zainstalowanie Cygwin (32 lub 64 bity)
  4. wybrać i zainstalować python i git (i gpg jeśli chcesz) z Cygwin instalatora
  5. Ustaw CYGWIN=winsymlinks:native w swojej skorupie Cygwin:

    export CYGWIN=winsymlinks:native 
    mkdir NEW_DIR 
    cd NEW_DIR 
    repo init -u YOUR_URL 
    repo sync -j 7 
    

(patrz także my other post)

+0

Miałem częściowy sukces przy użyciu tego podejścia, jednak nadal jestem pozornie losowy '0 [główny] git-remote-https 69956 child_info_fork :: abort: C: \ cygwin \ bin \ cygldap-2-4-2.dll : Załadowany na inny adres: rodzic (0x3A0000)! = Dziecko (0x370000) błąd: can not fork() for fetch-pack: Zasoby chwilowo niedostępne. – friederbluemle

+0

Witam @friederbluemle. Nie rozumiem, kiedy wystąpił błąd. Opublikuj nowe pytanie, w którym możesz podać więcej szczegółów. Z chęcią Ci pomogę. Po opublikowaniu pytania wystarczy dodać tutaj nowy komentarz. Potem poświęcę czas na odtworzenie twojej sprawy. A może ktoś inny znajdzie tę sztuczkę ... Pozdrawiam;) – olibre

+1

@olibre jesteś moim hiro: D - szybki sposób użycia repo na windows :) – ceph3us

4

Nie ma natywny repo dla Windows komunikatu.

Można użyć maszynę wirtualną Linux lub podwójnego rozruchu lub obejść (stosunkowo niewielkie) problemów spowodowanych przez dowiązania nie działa w systemie plików.

Innym rozwiązaniem byłoby po prostu użyć git bezpośrednio zamiast używania repo jako owijki wygoda - repo jest narzędziem wsparcia, a nie dodaje żadnej istotnej siły.

7

Działający narzędzie repo dla Windows dostępny jest tutaj: https://github.com/esrlabs/git-repo

Wymaga Python 3+ i git 1.7.2+

Btw, oryginalna rozwidlona wersja repo wydaje się dość stara, więc może nie zawierać wszystkich aktualnych funkcjonalności.

+0

Readme dla projektu stwierdza, że ​​Python 3+ jest tylko eksperymentalny: 'Uwaga : Python 3.x jest obsługiwany w eksperymentalnych bazach przez git-repo ' – skelliam

3

Istnieje alternatywa dla każdego, kto ma wybór do pracy z alternatywą dla repo, nazywa się gclient.

Zobacz Google's depot tools:

gclient: Meta-checkout tool managing both subversion and git checkouts. It is similar to repo tool except that it works on Linux, OS X, and Windows and supports both svn and git. On the other hand, gclient doesn't integrate any code review functionality.

+0

Nie zawracaj sobie głowy odpowiadanie na stare, nietypowe pytania. Jeśli pytanie nie jest zgodne z dzisiejszymi standardami i nie powoduje żadnych szkód, po prostu niech tak będzie. Kiedy takie pytania przyciągają nowe odpowiedzi, są one jednak poddawane kontroli i mogą zostać usunięte. – Mogsdad

+3

@Mogsdad Myślę, że ta odpowiedź jest bardzo istotna. Ponadto uważam, że pytanie jest nadal bardzo aktualne. – 0x90

+2

Właśnie dzisiaj miałem to samo pytanie, a odpowiedź jest bardzo trafna. –

Powiązane problemy