Skojarz plik o zmienionej nazwie z plikiem „usuniętym” w poprzednim zatwierdzeniu

1

Prawdopodobnie już o to pytano i na pewno byłbym wdzięczny, gdyby ktoś znalazł odpowiedni duplikat. Pamiętaj jednak o uważnym przeczytaniu pytania przed oznaczeniem go jako duplikatu.

Jakiś czas temu przypadkowo zmieniłem nazwę zestawu plików bez odpowiedniej zmiany nazwy plików w TortoiseSVN . Zamiast kojarzyć usunięte pliki z ich nazwami, zrobiłem zatwierdzenie, które po prostu usunąłem pliki i dodałem inne. Teraz chciałbym naprawić powiązanie między dwoma plikami, aby poprzednia historia pojawiła się w dzienniku dla tego pliku. Mam pewną ideę, że powracają może pomóc, ale jestem wprawdzie nieco nieświadomi jak powraca pracę w TortoiseSVN, a oni nie mogą faktycznie być rozwiązaniem.

Aby to wyjaśnić, chcę:

  • Zmień nazwy plików, aby Tortoise SVN logzawierał ich poprzednią historię
    • Wiem, że może to być proces wieloetapowy i ogólnie rozumiem, że proces ten mógłby wyglądać następująco:
      1. Cofnij zmiany
      2. Zmień nazwę plików we właściwy sposób
      3. Dostać z powrotem zmiany commit od oryginału
        • Korzystając z tego szczególnego procesu, nie jestem pewien, jak poprawnie obsłużyć krok 3; idealnie byłoby, gdyby każdy z moich starych indywidualnych zatwierdzeń był zapisywany w ten sam sposób do tych samych plików, ale nie wiem, jak to zrobić. A może jestem wprowadzony w błąd i naprawdę powinienem po prostu pobrać zawartość ostatniego zatwierdzenia i dodać ją jako następne zatwierdzenie do tych plików.

Uwaga: Odniosłem się już do poniższych linków i chociaż nie byłem pomocny, nie podałem bezpośredniej odpowiedzi na moje pytanie:

Graham
źródło
Nie jestem pewien, o co właściwie pytasz: jak zrobić to, co chcesz, cofnąć lub czy w ogóle jest to możliwe? Ponieważ temat nie jest po prostu możliwy, można cofnąć dwie zmiany i zamiast usuwać nazwy plików. Ale sam już o tym wspominałeś.
Thorsten Schöning,
1
@ ThorstenSchöning Przepraszamy za brak jasności. Zredagowałem moje pytanie. Staram się unikać zadawania pytań XY.
Graham

Odpowiedzi:

0

Jeśli chodzi o krok 3, myślę, że możesz zrobić oba z tych, o których wspomniałeś. Odzyskiwanie pojedynczych zatwierdzeń wymaga gałęzi, jednak: Rozgałęzienie bieżącego pnia, cofnij przed usunięciem / dodaniem, wykonaj + zatwierdz odpowiednią zmianę nazwy, połącz + zadeklaruj każde zatwierdzenie zainteresowania pnia do gałęzi, scal gałąź z pniem. Spowoduje to jedno zatwierdzenie tylko w linii głównej, w tym wszystkie zmiany, ale SVN będzie w stanie odróżnić twoje poprzednie indywidualne zatwierdzenia podczas blameitd.

Możesz zrobić to samo na linii głównej, po prostu nadpisując interesujące pliki po odpowiedniej zmianie nazwy na zawartość, którą mieli przed cofnięciem. Albo ze wszystkimi zmianami indywidualnie, albo tylko z najnowszym stanem pliku, zależy to od tego, co lubisz. Pamiętaj, że SVN zawsze będzie zawierał twoje poprzednie indywidualne zatwierdzenia w historii katalogu nadrzędnego, więc może być niepotrzebne odzyskiwanie każdego z nich z powodu twoich konkretnych plików zainteresowania.

Na koniec możesz łatwo wypróbować wszystkie te podejścia, po prostu tworząc gałęzie bieżącego pnia i zobaczyć, jak wyglądają dzienniki dla poszczególnych plików, katalogów nadrzędnych itp. Przed / po zastosowaniu zmian. Możesz już nawet nie przejmować się poprawną zmianą nazwy na korzyść zachowania indywidualnych zatwierdzeń tylko dla nowych plików. Ostatecznie zmieniłeś ich nazwę z jakiegoś powodu, więc na ile prawdopodobne jest, że w ogóle zależy ci na starym statusie w przyszłości?

Aby skomplikować sprawę, możesz nawet zrzucić bieżące repozytorium tylko do tej wersji przed usunięciem / dodaniem i użyć go jako nowej bazy z odpowiednią zmianą nazwy i zastosowaniem poszczególnych zmian w celu ponownego zatwierdzenia. W ten sposób nie będziesz już mieć żadnych starych wiadomości zatwierdzania i bardzo czystej historii. Ale nie sądzę, że warto.

Thorsten Schöning
źródło