2010-02-24 12 views
5

Próbuję więc wypróbować tylko wtyczkę TestNG z repozytorium contrib Netbeans. (Czy jest to moduł? Jestem nowy Mercurial, więc naprawdę nie wiem jeszcze żargon).Czy można wykupić pojedynczy katalog z repozytorium Mercurial (HG)?

Kiedy uruchomić następującą komendę ...

hg clone http://hg.netbeans.org/main/contrib/ 

... mam całe repozytorium, które zawiera wszystkie wtyczki contrib. Czy można po prostu wyciągnąć tę lokalizację?

http://hg.netbeans.org/main/contrib/file/tip/testng/

Dzięki!

+0

możliwy duplikat [Jak sklonować podfolder repozytorium w Mercurial?] (Http://stackoverflow.com/questions/920355/how-do-i-clone-a-sub-folder -of-a-repozytorium-w-rtęci) – MvG

Odpowiedz

9

Pojęcie to nazywa się "wąskim klonowaniem" i nie, obecnie nie jest możliwe w Mercurial.

To część radaru niektórych z nas przyczynia się do Mercurial, ale trudno rozwiązać ten problem. Na przykład:

  • Jak obliczyć hash każdego nowego zatwierdzenia, jeśli nie masz wszystkich plików w repo?
  • Co się stanie, jeśli spróbujesz wyświetlić historię pliku w pliku contrib/testng, jeśli ten plik został przeniesiony z innego folderu?
0

Nie jestem pewien, ale myślę, że odpowiedź w ogólnym przypadku brzmi "prawdopodobnie nie".

Jeśli repozytorium jest lokalny (to nie brzmi jak to jest w Twoim przypadku), można zrobić coś takiego:

hg archive -R /path/to/my/repo -I /path/to/my/repo/folder/i/want export-folder-name 

(Komenda musiałoby być coś, co eksportuje non-vc” d, zamiast tworzyć częściowe repozytorium, ponieważ elementy .hg są przechowywane raz na poziomie tła, a nie w częściach w każdym folderze, jak robi to SVN.)

Nie działa jednak na zdalnych repozytoriach. Ani nie "hg log", a ludzie Hg explained why:

Imagine mogę wysłać polecenie dziennik -P http://www.kernel.org/hg/linux-2.6, który jest zbliża 100k Zestawienia zmian. Przy jednej różnicy na sekundę (dużo poszukiwania), to będzie zająć około 3 godzin czasu procesora/dysku na serwerze, nie myśląc o szerokości pasma metrycznego wynoszącej . Byłoby szybsze i prostsze dla wszystkich, aby po prostu sklonować repozytorium i zrobić dziennik lokalnie.

Podejrzewam, że hg archive nie może działać zdalnie z tego samego powodu.

+0

Sklonowanie repozytorium contrib przez moje połączenie zajmuje nieco ponad 10 minut, a ja nie przejmuję się niczym poza wtyczką TestNG. To nie jest wielka sprawa, ponieważ jest to jednorazowa sprawa, ale byłem tylko ciekawy, czy możliwe jest pobranie metadanych dla całego repo w jednym kroku i pobranie rzeczywistych plików dla części repozytorium w innym kroku. . Myślę, że odpowiedź brzmi nie. – braveterry

+0

Co ciekawe, GIT wydaje się mieć takie samo ograniczenie.Wyobrażam sobie, że zaprojektowanie DVCS zaprojektowanego pod kątem wydajności we wspólnym przypadku (tj. Przechowywanie zestawów zmian zamiast plików) sprawia, że ​​jest to trudne. – Ken

Powiązane problemy