robię jakieś zaawansowane wykorzystanie Git, odpytywanie obiektów w celu optymalizacji tras testowych mojego kodu, więc pokrywa się ze mną, jeśli następujących dźwięków bardzo daleko od zużycia, że większość ludzi zrób z Git.Git: obiekty Przeglądaj w odległym
chcę zrobić coś jak git cat-file -p [...]
, z wyjątkiem obiektów na pilocie, bez ich pobierania. tzn. chcę powiedzieć: "Na zdalnym origin
, pokaż mi zatwierdzić A
, w szczególności powiedz mi, co jest identyfikatorem jego drzewa, a następnie pokaż mi zawartość drzewa (lista bloków i poddrzew)." Nie muszę pobrać rzeczywistą zawartość plików, tylko powyższe informacje.
Wiem, że mogłem po prostu pobrać zatwierdzenie z pilota do mojego lokalnego repozytorium i użyć na nim git cat-file
, ale wtedy będzie to wymagało pobrania wszystkich rodziców zatwierdzenia z pilota, co może zająć dużo czasu. Potrzebuję tego szybko, ponieważ jest wykonywany w programie, który powinien działać setki razy dziennie w wielu różnych repozytoriach.
Czy istnieje sposób, aby zrobić powyżej bez pobierania commit?
Dzięki, że to może działać, ale to oznacza, że teraz trzeba dodać logikę, która wygląda w adresie URL, widzi czy to ssh, jeśli uzyskuje dostęp do serwera za pomocą SSH biblioteki ... To wielki bałagan. Mam nadzieję, że jest lepsze rozwiązanie. –
Tak, będziesz musiał wykonać to programowanie samemu, nie ma żadnego polecenia o niskim poziomie niż 'git fetch', które możesz polecić, aby pobrać pojedyncze zatwierdzenia. Nie nazwałbym tego bałaganem, tylko programowaniem. Zacznę od 'system (" scp ... ")' lub cokolwiek innego musisz wywoływać komendy systemowe w wybranym języku skryptowym i wybierać tylko bibliotekę SSH, jeśli wydajność jest zła z powodu uruchamiania podprocesowego. Jeśli mają dostęp http, to jest to ta sama odpowiedź, tylko inna protokół. – AnoE