2009-10-26 11 views
9

Chciałbym wiedzieć, czy jest możliwe, aby przywrócić usunięty plik ze starszej wersji (czysty sposób to zrobić)bzr: Przywracanie usuniętych plików po kilku zatwierdzeń z bazaru

Mam przemianowany plik dla niektórych testach, niż ja popełnił całą moją pracę (i zapomniałem zmienić nazwę pliku) i zrobił wiele innych zatwierdzeń ... Kiedy zdałem sobie sprawę, było już za późno ...

Pozdrowienia, Ayman

Odpowiedz

0

To nie jest najlepsza odpowiedź. Zobacz odpowiedź "bialix", która jest znacznie prostsza. Zostawię to tutaj dla odniesienia.


Oto co myślę jest najczystszym sposób:

  1. Tworzenie oddziału:

    bzr branch mytree naprawa-path

  2. CD do branży remontowej

  3. Przywróć tylko brakujący plik w ostatniej wersji (e g 287 w tym przykładzie):

    bzr przywrócić -R 287 lost.file

  4. Commit zmianę

    bzr commit -m "Unshoot nogą"

  5. cd z powrotem do głównego oddział

  6. seryjnej w naprawie

    bzr seryjnej naprawa-path

  7. Po zakończeniu należy zatwierdzić scalenie i usunąć gałąź naprawy.

Można to zrobić, po prostu powracając do oryginalnej gałęzi roboczej, ale prawdopodobnie nie należy tego robić. Musisz również (trochę) martwić się o wszelkie niezatwierdzone zmiany.

4

Jeśli znasz numer wersji po usunięciu tego pliku (możesz sprawdzić historię za pomocą bzr log -v), możesz wskrzesić ten plik za pomocą polecenia scalania. Tak dla pliku foo i numer wersji N trzeba uruchomić polecenie:

bzr merge foo -r N..N-1 

Np dla wersji 287:

bzr merge foo -r 287..286 

To polecenie spowoduje przywrócenie pliku tak, jak w wersji 287. Musisz zatwierdzić tę zmianę i gotowe.

+0

Ostrożnie! Spowoduje to cofnięcie * całości * rev 287. Nie sądzę, że można scalić tylko jeden określony plik z zestawu zmian. –

+0

Tak, bzr może scalić tylko jeden plik z zestawu zmian. Możesz to przetestować samodzielnie. – bialix

+0

Tak, masz absolutną rację. +1. Wycofuję komentarz i moją odpowiedź. Jedyne, co chciałbym jeszcze zachować, to to, że w zależności od złożoności twojej pracy, rozsądne może być odwrócenie w innej gałęzi. –

12

Najprostszym sposobem jest po prostu użyć bzr revert z numerem rewizji przed plik został usunięty:

bzr revert -rX path/to/file 
bzr commit -m 'Bringing path/to/file back' 

Nie trzeba scalić wszystko.

Powiązane problemy