Upstream nazywany szkodliwym
Istnieje, niestety, inne zastosowanie „upstream”, do którego inne odpowiedzi tutaj nie docierają, a mianowicie odniesienie się do relacji między rodzicami a dziećmi w ramach repo. Scott Chacon w książce Pro Git jest na to szczególnie podatny, a wyniki są niefortunne. Nie naśladuj tego sposobu mówienia.
Na przykład, mówi o fuzji powodującej szybkie przewijanie do przodu, że tak się dzieje, ponieważ
zatwierdzenie wskazane przez gałąź, w której się połączyłeś, było bezpośrednio przed zatwierdzeniem, w którym się znajdujesz
Chce powiedzieć, że zatwierdzenie B jest jedynym dzieckiem jedynego dziecka ... jedynego dziecka popełnienia A, więc aby połączyć B w A, wystarczy przesunąć odnośnik A, aby wskazał zatwierdzenie B. Dlaczego ten kierunek należy nazwać „upstream”, a nie „downstream”, lub dlaczego geometria takiego czysto prostego wykresu powinna być opisana jako „bezpośrednio upstream”, jest całkowicie niejasna i prawdopodobnie dowolna. (Strona man dla git-merge
o wiele lepiej wyjaśnia wyjaśnienie tego związku, gdy mówi, że „obecny szef oddziału jest przodkiem nazwanego zatwierdzenia.” To jest coś, co Chacon powinien powiedzieć.)
Rzeczywiście, sam Chacon wydaje się używać później słowa „downstream”, co znaczy dokładnie to samo, kiedy mówi o przepisaniu wszystkich potomnych zatwierdzeń usuniętego zatwierdzenia:
Musisz całkowicie przepisać wszystkie zatwierdzenia poniżej wersji 6df76, aby całkowicie usunąć ten plik z historii Git
Zasadniczo wydaje się, że nie ma żadnego jasnego pojęcia, co rozumie przez „upstream” i „downstream”, odnosząc się do historii zmian w czasie. Takie użycie jest zatem nieformalne i nie należy do niego zachęcać, ponieważ jest po prostu mylące.
Jest zupełnie jasne, że każde zatwierdzenie (oprócz jednego) ma co najmniej jednego rodzica, a zatem rodzice rodziców są przodkami; a w przeciwnym kierunku, zobowiązania mają dzieci i potomków. Jest to przyjęta terminologia i jednoznacznie opisuje kierunkowość wykresu, więc jest to sposób na rozmowę, gdy chcesz opisać, w jaki sposób zatwierdzenia odnoszą się do siebie w ramach geometrii wykresu repo. W tej sytuacji nie używaj luźno „upstream” lub „downstream”.
[Dodatkowa uwaga: zastanawiałem się nad związkiem między pierwszym cytowanym git-merge
przeze mnie zdaniem Chacon a stroną podręcznika użytkownika i przychodzi mi do głowy, że to pierwsze może wynikać z nieporozumienia drugiego. Strona man opisuje dalej sytuację, w której użycie „upstream” jest uzasadnione: szybkie przewijanie często ma miejsce, gdy „śledzisz repozytorium upstream, nie dokonałeś żadnych lokalnych zmian, a teraz chcesz zaktualizować do nowszej weryfikacja wstępna. ” Być może więc Chacon użył „upstream”, ponieważ zobaczył to tutaj na stronie podręcznika. Ale na stronie podręcznika znajduje się zdalne repozytorium; w przytoczonym przykładzie Chakona szybkiego przewijania nie ma zdalnego repozytorium, tylko kilka lokalnie utworzonych gałęzi.]