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:)).
Możesz mnie niegodnego oświecić, dlaczego wrzucasz każdy projekt na inna wirtualke ? I bardziej generalnie, dlaczego używa się maszyn wirtualnych ?
@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