Jesteśmy doradcą w zakresie oprogramowania z wieloma projektami dla różnych klientów. Tradycyjnie używamy Subversion, ale obecnie rozważamy przejście na Git.
Znaczna część tworzonych przez nas dokumentów jest udostępniana naszym klientom (wymagania, projekty globalne, specyfikacje testów itp.), A do ich tworzenia używamy MS Office. W Subversion możemy użyć jego funkcji „Blokuj”, aby upewnić się, że nikt nie edytuje tego samego dokumentu w tym samym czasie. W Git nie możesz tego zrobić, ponieważ ze względu na swoją rozproszoną naturę git nie ma blokad.
Zamki to tak naprawdę niewiele więcej niż mechanizm komunikacji, ale są bardzo skuteczne.
Obecnie nasz kod i dokumenty skierowane do klientów zazwyczaj znajdują się w różnych podfolderach innego repozytorium svn. Co robisz, gdy przechodzimy do git? Widzę zestaw opcji:
Przenosimy repozytoria svn do git 1 na 1. Zamiast używać blokad na plikach Office, robimy to, co sugerują git ludzie i próbujemy w jakiś sposób zmienić nasz przepływ pracy, aby to naprawić. Może to działać w gałęzi przy dowolnej edycji dokumentu i scalać ją w trakcie przeglądu. To podejście rozbija np. Arkusze Excela, które zawierają informacje o zarządzaniu projektem; są łatwo edytowane przez członków zespołu (i zachęcamy do tego), ale nie podlegają formalnej procedurze weryfikacji
Używamy git dla kodu i svn dla dokumentów i zarządzania projektami. Ma to tę wadę, że niektóre inne dokumenty projektowe nie będą „w pobliżu” określonego przez nie kodu, co zwiększa szansę, że ludzie zapomną je zaktualizować. Ponadto każdy musi korzystać i rozumieć dwa zestawy narzędzi. To powiedziawszy, być może jest to świetna okazja, aby przejść do tekstowych narzędzi dokumentacyjnych (lateks, markdown, HTML itp.) Dla dokumentów projektowych, które nie są skierowane do klientów.
Np. 1, ale hakujemy
git lock
polecenie, które robi dla nas to, co robi dla nas svn lock (odpowiednio przełączamy flagę „tylko do odczytu” i synchronizujemy z serwerem za pomocą niektórych środków).
Nie kupuję argumentu, że blokady nie działają w DVCS, ponieważ system powinien nawet działać, gdy jesteś całkowicie offline. Blokady Svn również mogą zostać zastąpione; są mechanizmem komunikacji . Bez pewnego połączenia sieciowego komputer nie będzie się dużo komunikował.
Nie możemy być jedynym sklepem, który jest bardzo zadowolony z tego, jak svn lock
pasuje do naszego przepływu pracy, prawda?
Wszelkie pomysły lub wskazówki?
Znalazłem /programming/119444/locking-binary-files-using-git-version-control-system, ale dyskusja jest raczej techniczna; Szukam sposobów rozwiązania lub uniknięcia praktycznego problemu dwóch członków zespołu edytujących ten sam plik binarny w tym samym czasie.