sobota, 17 września 2011

Zapominanie o dodaniu plików do repozytorium

Jest niewiele rzeczy, które tak frustrują jak brak jednego jedynego pliku, którego akurat potrzebujemy do dalszej pracy nad projektem. Zdarza się to często gdy inna osoba z teamu przed commitem nie doda pliku do repozytorium. W takiej sytuacji możemy się spodziewać, że inny developer nie będzie mógł kontynuwoać swojej pracy.

Przy projektach w symfony czasem zdarza się taka sytuacja, że ktoś dodał nową tabelę do bazy, wygenerował nowe modele i zapomniał o ich dodaniu. Pracując nad tym samym modułem niewiele mogę zrobić... Jeśli to tylko pliki Base* mogę wygenerować brakujące klasy na podstawie schema.yml ale jeśli któraś z klas implementuje metodę stworzoną przez kolegę z zespołu musiałbym ją napisać od nowa. W takiej sytuacji zostaje tylko kontakt z danym developerem, o ile oczywiście jest możliwy...

Jak nie zapominać o dodawaniu plików do repozytorium?
Jedynym skutecznym sposobem jest dyscyplina w zespole polegająca na tym, że każdy developer przez commitem sprawdza czy nie powinien dołączyć nowych plików.

Korzystając nawet z samej konsoli i klienta SVN możemy sprawdzić to poprzez komendę:

svn st --ignore-externals | grep '^?'


Samo "svn st" pokazałoby nam wszystkie zmiany. Czasem może być to długa lista, więc czytelniej będzie jeśli ograniczymy ją grepem do nowych plików. Taka lista plików wygląda mniej więcej tak:

?    lib/model/CampaignPeer.php
?    lib/model/Campaign.php
?    lib/model/om/BaseCampaignPeer.php
?    lib/model/om/BaseCampaign.php
?    lib/model/map/CampaignMapBuilder.php


Brakujące pliki dodajemy i sprawdzamy JESZCZE RAZ:
svn st --ignore-externals | grep '^?' 
?    lib/model/map/CampaignMapBuilder.php


Jeśli nadal czegoś brakuje (jak wyżej) to uzupełniamy. W ten sposób unikniemy spowodowania fatal errora u kolegi :)

Dobrze także przed każdym commitem przejrzeć co "narobiliśmy", do tego także niewiele trzeba. Wystarczy konsola i np kompare.


svn diff > diff
kompare diff




Brak komentarzy:

Prześlij komentarz