2011-08-22 8 views
6

Jaka jest najlepsza metoda powiadamiania innych programistów, gdy zmiana wymagana do kontroli wersji wymaga pewnych dodatkowych dodatkowych działań przez programistę, który uzyskał aktualizację, np. zmodyfikować lokalny plik konfiguracyjny, który nie znajduje się w kontroli wersji?Kiedy zatwierdzenie do kontroli wersji wymaga od programisty zmiany własnej konfiguracji

Obecnie piszę to w komunikacie zatwierdzenia, ale wygląda na to, że można go łatwo pominąć. Czy jakiekolwiek systemy kontroli wersji zapewniają lepszy sposób na zrobienie tego?

Jak robią to inni ludzie, czy też nigdy nie powinno być żadnych zmian, które nie są objęte kontrolą wersji?

Używam mercurial, ale przydatne będą również odpowiedzi od osób używających innych form kontroli wersji.

Odpowiedz

5

Nie powinno być w rzadkich przypadkach zmiany konieczne, że są poza kontrolą rewizji. W rzadkich przypadkach, w których się znajdują, używaj zwykłego kanału komunikacyjnego, który mają deweloperzy (np. Lista mailingowa lub kanał IRC lub coś podobnego). Każdy projekt wielozakładowy i tak tego potrzebuje.

2

tylko pomysł, ale można mieć spust na podstawie wzoru w wiadomości popełnienia wysłać mail z komentarzem dla programistów

wykonalne popełnienia z hooks

3

Personnally, używam 2 metody:

  1. komunikacie jednym: Mówię do innych developpers manipulacje są co zrobić, aby być na bieżąco (poprawne, ale czasami brakuje nam kilka szczegółów .. ..)
  2. Scenariusz: Zrobiłem skrypt update, który służy do zarządzania aktualizacją wszystkich części mojego projektu (różne katalogi, różne repozytoria, różne kontrolki wersji ...), w tym skrypcie umieszczam każdy operacja potrzebna do utrzymania poprawnego repozytorium (używam go dla repozytoriów svn i git).
5

z Git, czego mógł do (nawet jeśli nie jest to naprawdę nie dla tego scenariusza) jest użycie filter driver, pod warunkiem swój popełnić obejmuje zmiany w pliku z recognizable content (filtr nie robi” t mieć nazwę lub ścieżkę pliku).

enter image description here

Kierowca filtra:

  • zadeklarowana w .gitattributes plików (czyli wbrew haki lub wyzwalacze, można łatwo rozprowadzać go)
  • dołączony do rozmazywanie i wyraźna skrypt (również z wersją, smużenie jest wyzwalane przy zatwierdzaniu)
  • możesz, po zatwierdzeniu, uruchamiać dowolną akcję automatyczną, której potrzebujesz

Znowu chodzi o to, że nie używać haczyków (których nie można łatwo replikować wśród repozytoriów) i używać mechanizmu, który może być wersjonowany i klonowany.

1

W przypadku plików, w których każdy programista musi wprowadzić lokalne zmiany (np. Ciągi połączeń z bazą danych itp.), Chcę zachować szablon jako plik śledzony, podobnie jak localconfig.template.W skryptach do kompilacji/uruchamiania możesz mieć taką logikę:

if not exists localconfig then 
    copy localconfig.template to localconfig 
else 
    if localconfig.template is newer than localconfig 
    print a big ugly warning about maybe needing to update 
Powiązane problemy