Marcin Pasternak

Marcin Pasternak Programista .NET, C#

Temat: Kontrola wersji [visual studio]

Jak w temacie co polecacie nie koniecznie musi mieć wtyczkę do visual studio Myślałem nad Git + TortosieGit ale mam kilka pytań co np. gdy zmienię nazwę pliku/klasy w visual studio git straci synchronizacje?
Daniel Dąbrowski

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.

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

Następna dyskusja:

Report Server Project w Vis...




Wyślij zaproszenie do