Git backup

2

Jak już niejednokrotnie pisałem, że do pracy bardzo intensywnie wykorzystuję maszyny wirtualne. Każdy projekt ma swoją. Co za tym idzie – cały kod mam także schowany w wirtualkach, bo repozytorium hostuję na vipserv (lub na hostingu dostarczonym przez klienta). Ma to nieprzebrane wprost morze zalet. Ma też kilka wad, z których jedna dawała mi się czasami we znaki: aby dostać się do kodu, muszę odpalić wirtualkę, co nie zawsze jest możliwe.

Przyjemnie byłoby móc napisać "git backup" i mieć całe repozytorium przetransferowane w jakieś dodatkowe miejsce, w moim przypadku: na fizyczne PC. Na tyle przyjemnie, że któregoś razu postanowiłem zrobić mały risercz. Okazało się to dość banalne, ponieważ dokładnie tą funkcję spełnia instrukcja git push z przełącznikiem –mirror.

Wystarczyło utworzyć alias wskazujący na "remote" skojarzone z PCtowym repo gotowym do przyjęcia mojego kodu:

  1:  [alias]  2:  	backup = push --mirror pc

Uwaga: czasami trzeba operację wykonać dwukrotnie aby pchnięte zostały wszystkie zmiany, wraz ze zmianami organizacji gałęzi. Czytałem kiedyś jakieś wytłumaczenia dlaczego tak jest, ale potem doszedłem do wniosku że w sumie nie ma to dla mnie znaczenia (lub bardziej luzacko: teramietowali:)).

Share.

About Author

Programista, trener, prelegent, pasjonat, blogger. Autor podcasta programistycznego: DevTalk.pl. Jeden z liderów Białostockiej Grupy .NET i współorganizator konferencji Programistok. Od 2008 Microsoft MVP w kategorii .NET. Więcej informacji znajdziesz na stronie O autorze. Napisz do mnie ze strony Kontakt. Dodatkowo: Twitter, Facebook, YouTube.

2 Comments

  1. billfuckinggates on

    Możesz mnie niegodnego oświecić, dlaczego wrzucasz każdy projekt na inna wirtualke ? I bardziej generalnie, dlaczego używa się maszyn wirtualnych ?

  2. @billfuckinggates:
    Niegodnego?:)
    Każdy projekt wrzucam na inną wirtualkę żeby ze sobą nie kolidowały. Na każdej wirtualce mam zainstalowane dokładnie to czego potrzebuję. Tu taki .NET i taki VS, tu sql server, tam mysql, tu git, tam mercurial, gdzie indziej SVN. Tu MVC 2, tam MVC 3, telerik/llblgen…
    Różnych komponentów jest masa i lubię mieć wszystko porozdzielane.
    Dodatkowo w każdym systemie mam pokonfigurowane narzędzia, skróty klawiaturowe itd na potrzeby jednego projektu. SlickRun inaczej zachowuje się u mnie na hoście a inaczej na każdej wirtualce, to samo chociażby z Autohotkeys. Poprzypinane programy na pasku zadań też są różne, żeby wygodnie się do nich odwołać przez win+[number].

    Mam nadzieję że to trochę rozjaśniło sytuację. O samej wirtualizacji pisałem też już w przeszłości: http://www.maciejaniserowicz.com/?tag=/wirtualizacja