2012-05-16 10 views
14

Muszę codziennie tworzyć kilka tagów w repozytorium Git.
Kiedy mam dużo tagów, czy spowoduje to spowolnienie mojego repozytorium lub spowoduje inne problemy?Czy zbyt wiele tagów spowoduje problemy w Git?

Uwaga: Używam GitHub, ale proszę, odpowiedz ogólnie.

+0

AFAIK tag to tylko wskaźnik do zatwierdzenia. Jeśli usługa taka jak Github musi wykonać dodatkowe przetwarzanie dla każdego tagu, aktualizacja może być wolniejsza w witrynie, ale git nie powinien zwalniać, z wyjątkiem może 'git log', jeśli masz kilka milionów tagów. –

Odpowiedz

6

(Annotated) tags nie spowodują, że Git będzie powolny, a jedynie trudniejszy w użyciu, ponieważ będzie trudniej znaleźć odpowiednie znaczniki spośród wszystkich pośrednich.

W najgorszym przypadku może spowolnić działanie interfejsu internetowego (np. GitHub), jeśli ma on wyświetlać tysięcy znaczników.

Może wszystkie te znaczniki nie muszą zostać przekazane, w takim przypadku można rozważyć utworzenie pośredniego lokalnego "Lightweight" tags.

+0

Lekkie znaczniki są domyślne, prawda? –

+0

@VonC Muszę je przekazać, zostaną później wykorzystane przez innych użytkowników. Zastanawiałem się, czy muszę wyczyścić starsze. –

+0

@ ML-- możesz je wyczyścić, najpierw lokalnie, a następnie na zdalnym: 'git tag -d 12.15',' git push origin: refs/tags/12.15'. Jednak twoi współpracownicy mogą mieć trudniejszy czas na synchronizację: http://stackoverflow.com/questions/1841341/remove-local-tags-that-are-no-longer-on-the-remote-repository – VonC

-1

Jeśli używasz windows/cmd, otrzymasz błąd "fatal: too many params" jeśli użyjesz pojedynczego cudzysłowu w twoim rozkazie. Na przykład. git tag -a ann_v1.1 -m 'Annotated tag v1.1'. Aby to naprawić, użyj zamiast tego podwójnych cudzysłowów. Ta pojedyncza notka powoduje problemy także w innych miejscach. Na przykład. git commit -m 'dangerous stuff' spowoduje błąd - błąd: pathspec "niebezpieczne" nie pasuje do żadnych znanych plików git.

2

Korzystanie Git 2.8.1 na Windows, mam doświadczenie drobne powolność z niektórych poleceń, gdy istnieje wiele tagów (15000 lub tak), w tym:

  • git log (z --decorate)

  • git status

  • Wyświetlanie historii w Visual Studio.

  • Korzystanie z wiersza poleceń, gdy głowa jest odłączona (ponieważ Git Bash ładnie wypisuje bieżącą wersję obok bieżącego katalogu).

Te polecenia sprawdzają znaczniki, aby ozdobić wyświetlane wersje. Każde z tych poleceń trwa około 1-2 sekund dłużej niż bez tagów.

Powiązane problemy