W zależności od posiadanego systemu kontroli wersji możliwe jest zautomatyzowanie tego problemu. Zarówno haki Subversion, jak i Mercurial - skrypty uruchamiane przez określone zdarzenia, takie jak pobranie, aktualizacja lub zatwierdzenie. Pisaliśmy dość prosty skrypt, który został uruchomiony na popełnienie: wyglądało to, aby zobaczyć, czy nie było .vbp w pakiecie popełnił, a jeśli było, prowadził „normalizacji” rutynowych że
- umieścić wszystkie .cls /.bas/.frm pliki na górze .vbp, w kolejności alfabetycznej
- umieścić punkt odniesienia w kolejności alfabetycznej
- dolnym bocznym ścieżki odniesienia
reszta pliku jest pozostawione sam, ponieważ to tylko pierwsze trzy sekcje, które VB wydaje się rozkoszować.
W związku z tym, większość czasu, w którym popełniłeś i nie wprowadziłeś żadnych znaczących zmian w .vbp, skrypt przechwytujący przywraca twój plik .vbp do kanonicznego, uporządkowanego stanu (jak powrót), który ma efekt usunięcia go z zatwierdzenia, ponieważ nie jest już zmieniany.
Jeśli dodasz nowy plik lub odniesienie do swojego projektu, konsekwentne sortowanie alfabetyczne linii VBP oznacza, że unika się konfliktów scalania, ponieważ algorytm scalania VC może łatwo i poprawnie wykryć zmiany.
Napisaliśmy nasz skrypt w JavaScript i wykonaliśmy go przy użyciu Hosta skryptów systemu Windows, ponieważ w przypadku skrzynek Windows przynajmniej to usuwa zależność od interpretera takiego jak Perl/Python.
Po podłączeniu tego skryptu do nowych projektów VB trwa 30 sekund. Przewagą nad innymi ręcznymi podejściami jest to, że nie musisz świadomie pracować nad plikiem VBP. Po prostu zatwierdź to wszystko, a skrypt zajmie się resztą.
Jak powiedział Guru C-Pound w swojej odpowiedzi, wystarczy sprawdzić plik .vbp, kiedy naprawdę trzeba, co nie jest często. Ponadto, zadałem proste pytanie: "Stackoverflow".com/questions/167580/jest-to-aby-zapobiegać-the-vb6-kompilator-od-tasowania-zawartości-plików – raven