Marcin Pasternak Programista .NET, C#
Daniel Dąbrowski Właściciel, 42n
Temat: Kontrola wersji [visual studio]
Ja uzywam git juz ponad 2 lata razem z VS. I od 2 lat korzystam tylko i wyłącznie z polecen konsolowych. Jedynie potrzebuje czasem graficzną reprezentację drzewa, wówczas korzystam z "gitk --all"Zaleta gita jest to iż podczas zmiany nazw lub zmiany lokalizacji pliku git sam rozpoznaje ze jest to "rename" a nie "add remove". Dzieki temu nie potrzebujemy żadnych wtyczek do VS które dodatkowo obciązają nam system.
Jezeli mamy SVN i pod Visual Studio robimy jakąś refaktoryzacje polegająca na zmianie nazwy to bez pluginu tracimy historię. SVN potraktuje to jako "add remove".
W git ... robisz refaktoryacje .. przerzucasz sobie pliki po katalogach jak Ci sie podoba... a na koniec z lini polecen robisz "git add ." oraz "git add -u ." i git sam wykryje ktore pliki ma traktowac jako add remove a ktore jako rename. Robi to na podstawie analizy podobieństwa zawartosci plików.
Dodatkowa zaletą jest "odkładanie zmian na półkę". Przykład.
Pracujesz nad jakąs refaktoryzacja i pozmieniałęś nazwy plików... Przychodzi szef i mowi: "Masz natymiast zrobic te poprawkę w kodzie"
Korzystając z SVN mozesz zrobic sobie patch-a aktualnych twoich zmian. Zapisac go gdzies z boku. Zrobic revert . Napisac poprawke dla szefa. Zrobic commit ... i spowrotem wrocic do swojej pracy poprzez aplikacje zapisanego patch-a.
Ale jest jeden ZONK ... svn-owy patch nie ma czegos takiego jak rename. po aplikacji patcha mamy plik jako add remove mimo iż wczesniej zrobilismy ręcznie "svn rename Foo.cs Boo.cs"
W git robisz tak:
- Zmieniles Foo na Boo
- Wpada szef krzyczać ... bla bla bla
- git stash (odkłada twoje zmiany na bok robiac od razu revert)
- wprowadzasz zmiany
- git commit -am "Fix dla szefa"
- git stash pop
wracasz do swojej refaktoryzacji z dalej zachowaną historią.
Apropo lini polecen
mozna ułatwić to sobie tak
http://www.jeremyskinner.co.uk/2010/03/07/using-git-wi...
Ja u siebie mam tak
http://bitbucket.org/rod/dotfiles
Update:
Zapomnialem ze mozna jeszcze zrobic np tak
git gui blame .\MyCoolClass.csDaniel Dąbrowski edytował(a) ten post dnia 15.04.11 o godzinie 00:48
Mirosław
F.
Software
Configuration
Management Engineer
Temat: Kontrola wersji [visual studio]
Witam,Osobiście jako developer mam niewielkie doświadczenie, ale zdążyłem pracować na SVN (na początku) a obecnie przylgnąłem na stałe do mercuriala, który uważam bije SVN na głowę.
Muszę jednak przyznać, że mercurial ma jedną wadę. Słabo sobie radzi z plikami binarnymi oraz plikami dużej wielkości (mniej wiecej powyżej 100MB).
Mercurial traktuje pliki w zupełnie inny sposób niż wszystkie programy do kontroli wersji. Mercurial raczej śledzi zmiany niż rewizje. Zarządzanie nim jest mega proste i wystarczy tylko dobry tutorial, który wyjaśni jak zacząć pracować na nowej kontroli wersji.
Jeśli ktoś jest w stanie przestawić swój tok rozumowania z "SVN-owskiego" na "mercurialowy", to bardzo polecam.
Wszystkie kłopoty z tzw. merge-owaniem plików zupełnie zniknęły, gdy w firmie przerzuciliśmy się na ww. mercuriala.
Mercurial posiada również plugin do VS 2010, a zmiana nazwy pliku jest banalnie prosta przy użyciu mercurial-a, który jak wspomniałem śledzi raczej zmiany niż rewizje.
Pozdrawiam,
Mirek
Podobne tematy
-
Programiści .NET » Report Server Project w Visual Studio 2008 -
-
Programiści .NET » Diagram klas - Visual Studio Ultimate -
-
Programiści .NET » Visual Studio 2010 Express i NuGet -
-
Programiści .NET » Intel Atom, Windows 8 i Visual Studio 2013 -
-
Programiści .NET » Visual Studio 2010 SP1 a użycie procesora -
-
Programiści .NET » Czego wam brakuje w Visual Studio -
-
Programiści .NET » Kopiowanie całej linijki w Visual Studio -
-
Programiści .NET » Visual Studio 2008 Trial - Wykorzystanie komercyjne -
-
Programiści .NET » Visual Studio 2010 - Problem z zapisem -
-
Programiści .NET » Po odinstalowaniu Visual Studio i ponownym instalowaniu... -
Następna dyskusja: