Łatwy sposób na zaangażowanie nie-programistów (tj. Projektantów) w kontrolę wersji?

13

Jakie są kluczowe sposoby zaangażowania zespołu w korzystanie z kontroli wersji podczas programowania, tworzenia stron internetowych lub w inny sposób?

Odmawiam pracy bez niego, co oznacza, że ​​każdy zaangażowany w projekt musi również z niego korzystać. To tylko dobra praktyka.

GUI, takie jak Tower, pomogły, ale jego koncepcja jest albo napełniona gniewem (postawa „nie moja praca!”), Nieśmiałością, albo po prostu nie korzysta z niego (zamiast tego używa FTP, omijając kontrolę wersji na przykład dla deweloperów lub wdrożeń) ).

Edycja: Powinienem był trochę wyjaśnić, że nie chodzi mi tylko o obrazy / PSD.

Kevin
źródło
11
Sprawiają, że EASY do użytku ...
1
Uważam, że Git jest dość łatwy, gdy spędzasz z nim kilka dni i masz konsensus co do tego, jak powinien iść rozwój. To wciąż była większa przeszkoda dla innych.
Kevin
2
Należy pamiętać, że kontrola wersji i tworzenie kopii zapasowych czasami łączą się (choć znacznie różnią się) i dla projektanta z danymi binarnymi; tworzenie kopii zapasowych może być już normą, dlatego należy zrozumieć, co zyskuje.
Aaron McIver
1
@Kevin: To, co dla programisty jest łatwe, oczywiste i intuicyjne, niekoniecznie jest czymś podobnym dla innych ludzi, nawet inteligentnych i kreatywnych innych ludzi.
David Thornley,
1
Zaangażuj się z projektantką, a następnie zaangażuj ją prywatnie w kontrolę wersji. :)

Odpowiedzi:

11

Pracuję w zespole zarówno programistów, jak i projektantów i wszyscy używamy kontroli wersji. Dla projektantów jest do bani.

Udostępnianie plików / tworzenie kopii zapasowych zawsze oznacza kontrolę wersji

Kiedy powiesz:

Odmawiam pracy bez niego, co oznacza, że ​​każdy zaangażowany w projekt musi również z niego korzystać. To tylko dobra praktyka.

Musisz zdawać sobie sprawę z pułapek używania kontroli wersji z danymi binarnymi:

  • Zastąpienie : jeśli dwóch projektantów pracuje nad tym samym plikiem, drugi, który zatwierdził, nadpisze zmiany pierwszego jako bieżącej wersji. Jedynym sposobem, aby temu zapobiec, jest blokowanie lub ciągła komunikacja na temat tego, kto robi co do którego pliku, co może utrudniać przepływ pracy ich zespołu.
  • Scalanie : scalanie wspomagane narzędziami nie występuje w danych binarnych. Ręczne łączenie jest bolesne i podatne na ogromne ilości błędów.
  • Wzdęcie repozytorium: systemy VC przechowują tylko zmienione linie dla plików tekstowych. Nie jest to możliwe w przypadku danych binarnych, ponieważ cały plik będzie wyglądał inaczej niż system VC. Oznacza to, że chociaż 20 wersji pliku tekstowego 10 KB może zajmować tylko 20 KB, 20 wersji pliku 1 MB prawdopodobnie zajmie około 20 MB. Zespół projektowy średniej wielkości może z łatwością wygenerować wiele poprawek dla dziesiątek plików binarnych. Twój dział IT może wkrótce znienawidzić Cię za wymagania dotyczące przestrzeni dyskowej, a być może nawet zwiększoną pamięć / procesor, jaki będzie mieć Twój serwer VC.

    Ty i inni programiści możecie wkrótce nie znosić, jak długo mogą trwać kasy lub aktualizacje, chyba że stworzyliście bardzo dobrą organizację repozytoriów, aby uniknąć plików binarnych.

  • Ograniczona korzyść : Twoi projektanci rzadko, jeśli w ogóle, wrócą do poprzednich wersji plików binarnych, ponieważ 1) nie ma łatwego sposobu na sprawdzenie zawartości poprzedniej wersji 2) nie ma łatwego sposobu na scalenie go, a co najważniejsze, 3) nie działają w ten sposób - służą do budowania alternatywnych wersji niektórych grafik, które mogą być przydatne w samych plikach produkcyjnych.

W przypadku swojego kodu powinieneś bezwzględnie używać VC i masz rację, żądając tego.

Ale musisz sprawdzić założenie, że oznacza to, że wszyscy muszą z niego korzystać, a także to, czy jest to nawet dobra praktyka dla projektantów (chociaż jest tworzenie kopii zapasowych). Powinieneś przechowywać końcowe zasoby graficzne wymagane przez twoją stronę internetową / aplikację w swoim VC, ale w przypadku plików produkcyjnych może to nie być właściwe rozwiązanie.

Nicole
źródło
Jeśli chodzi o „nadęty repozytorium”: możesz spróbować obejść ten problem przy użyciu odpowiednich formatów plików. Dokumentacja przechowywana w formacie języka znaczników dokumentu i grafika przechowywana w formacie języka znaczników graficznych zamiast równoważnych formatów binarnych może bardzo pomóc. Oczywiście opłacalność tego zależy od danego projektu oraz chęci i kompetencji zaangażowanych osób. ;)
Baelnorn
5
Nadpisywanie nie zdarza się w VCS nic wartych. Co się dzieje, masz dwie wersje tego samego pliku. Tak, HEAD repozytorium będzie miał ostatni zapis; ale praca drugiego projektanta nie jest stracona, jak na współużytkowanym dysku twardym. Myślę, że to ważne rozróżnienie.
Berin Loritsch,
2
@Berin: To prawda, ale jedną z korzyści współczesnego VCS jest to, że dwie osoby mogą pracować nad tym samym w tym samym czasie, a wiele prac związanych z uzgadnianiem odbywa się automatycznie. Jednak w przypadku pliku binarnego, w którym nie ma znaczącego procesu scalania, nie jest to możliwe. Ponadto szefem repozytorium jest ten, który ludzie będą uważać za „prawdziwych”.
jprete
1
Ponieważ cykl życia kodu źródłowego i dokumentacji projektowej jest inny, upewnij się, że używasz dla nich osobnych repozytoriów. Nie zgadzam się, że repozytoria są do kitu dla projektantów; większość czasu spędza na myśleniu i modelowaniu, a nie wprowadzaniu wielu drobnych zmian w dokumentach. Uznajemy również za zasadę, aby nie zezwalać na automatyczne łączenie (na wszystkie pliki przechowywane w repozytoriach), dlatego obowiązkowe blokowanie plików na potrzeby edycji. W połączeniu z dobrą komunikacją w zespole pozwala to uniknąć wielu wspomnianych wad.
rsp
1
Mylisz się, np .: Nadpisywanie - to nie jest problem kontroli wersji, wręcz przeciwnie, pomaga ci to wykryć. Systemy VC przechowują tylko zmienione wiersze dla plików tekstowych. - False dla gita.
maaartinus
4

Odmawiam pracy bez niego, co oznacza, że ​​każdy zaangażowany w projekt musi również z niego korzystać. To tylko dobra praktyka.

To świetna postawa, tam z „nie moją pracą!” :-)

Najlepszym sposobem na uzyskanie wpisowego jest użycie czegoś takiego jak TortoiseGit lub TortoiseSVN do zintegrowania kontroli wersji z Explorerem (przy założeniu Windows). Rzeczywista korzyść wymaga czasu, jeśli nie jesteś przyzwyczajony do paradygmatu kontroli wersji. Żółw przynajmniej ułatwia pracę z VCS za pomocą myszy. Wystarczy „kliknięcie prawym przyciskiem myszy -> zameldowanie”.

Z tego powodu szukałem implementacji przezroczystej kontroli wersji w TortoiseGit przy każdym zamknięciu pliku. Jeśli dasz komuś gałąź do pracy, a następnie każde zapisanie / zamknięcie stanie się operacją zatwierdzenia, to w pewnym momencie Ty, jako programista, możesz scalić jego gałąź, nie martwiąc się o spójność całego repozytorium, i może on przejść do biznes robienia tego, co robią, bez konieczności znajomości kontroli wersji.

Mam ten sam problem z ogromnym zestawem dokumentów kontroli, że nie mogę nakłonić ludzi do kontroli wersji, więc mamy 50 wersji tego samego dokumentu, które są nieco inne.

Chris K.
źródło
4

Sposób podejścia do tego celu jest skonfigurować system budowania (jak Hudson ), która korzysta z systemu kontroli wersji, aby pobrać źródła kompilacji i uczynić z niego regułę projektu, że tylko artefakty , które są dostarczane przez system budowy idą do zespołu testowego i ostatecznie wdrożony u klienta.

Wyjaśnij bardzo wyraźnie, że jeśli chodzi o proces projektu, wszystko, co nie pochodzi z kompilacji, jest prywatne tylko dla programistów; tak długo, jak czyjaś praca nie zostanie zaakceptowana w kompilacji, równie dobrze może nie istnieć.

rsp
źródło
2

Zilustruj zalety:

  • Pokaż im, jak mogą zaoszczędzić czas, umożliwiając wszystkim udostępnianie pracy i dostęp do centralnej lokalizacji.
  • Pokaż im, w jaki sposób pozwala projektantom pracować jednocześnie nad różnymi częściami projektu i scalić je z powrotem.
  • Pokaż im, jak mogą oznaczać i budować starszą wersję aplikacji do testowania lub rozwiązywania problemów.
  • Pokaż im, jak mogą zadzierać z projektem eksperymentu, a następnie odśwież projekt i nie zachowuj zmian, jeśli nie chcą.
  • Pokaż im, jak mogą zobaczyć, co się stało z czasem.
jzd
źródło
1
-1 Chodziło o zaangażowanie nie-programistów; lista jest skierowana do programisty. Jeśli zmodyfikujesz swoją odpowiedź, z pewnością usunę głos
negatywny
1
Myślę, że przegapiłeś część „dla nie-programistów”. Wszystkie wymienione zadania są programistycznymi.
Erik Funkenbusch,
Przepraszam, właśnie przeczytałem pytanie, a nie tytuł. Zmienię odpowiedź.
jzd
1 Usunięto ...
Aaron McIver,
1

„Nie moja praca” na temat kontroli wersji jest rozsądnym podejściem nie-programisty.

Zbuduj system kontroli wersji tak prosty i niewidoczny, jak Dropbox służy do synchronizacji lub Time Machine do tworzenia kopii zapasowych.

To powinno po prostu działać. Bez kasy, bez zatwierdzania. Wystarczy umieścić pliki w folderze projektu.

mouviciel
źródło
1

Używam tortoiseHG / mercurial z nową damą na stronie, bez żadnych problemów. Brak kasy sprawia, że ​​jest to bardzo proste i wywiera całą presję na osobę, która musi upewnić się, że pliki są zsynchronizowane. To nawet nie wydaje się „jeszcze jedną rzeczą do zrobienia”, po prostu „ok, zamierzam zaprezentować stronę internetową, więc muszę poprosić Petera o ponowne zsynchronizowanie zmian”. i to nie jest problem.

Nie miałem wcześniej doświadczenia z mercurialem, używamy VSS i nigdy nie życzyłbym sobie tego nikomu do kontroli źródła strony. Próbowałem raz i nie obwiniałbym nikogo za to, że nie chce z niego korzystać.

Peter Turner
źródło
0

Powiedziałbym, że użycie klonów żółwi * jest prostsze. Lub zintegruj kontrolę wersji z IDE lub czymkolwiek.

Coyote21
źródło