Jestem obecnie utworzenie Team Foundation Server 2010 i znalazłem bardzo dziwne zachowanie podczas wykonywania budowy:TFS2010 - Wrong changeset pojawiające się SourceGetVersion
Sytuację wyjaśnił: Mamy 2 oddziały
- Development
- Główne
Wszyscy deweloperzy sprawdzić w kodzie do jedynej gałęzi rozwojowej. Raz dziennie menedżer budowania łączy niektóre zestawy zmian z gałęzią główną. W oprogramowaniu deweloperskim działa ciągła kompilacja przy każdym uruchomieniu. W gałęzi głównej, raz dziennie (w nocy) uruchamiana jest kompilacja.
Teraz załóżmy, że zestawy zmian 1-100 są scalane z główną ramką o godzinie 17:00, co daje zestaw zmian 101 jako operację scalania. Niektórzy deweloperzy sprawdzają zestawy zmian 102-106 po godzinie 5 w gałęzi Rozwój. Teraz o godzinie 23:00 codzienna kompilacja jest automatycznie uruchamiana i działa w głównej gałęzi. Ostatnim changeset od głównego oddziału jest changeset 101. Jednak szczegóły Zbuduj pokazuje changeset 106:
mogę sobie wyobrazić, że takie zachowanie jest zamierzone, ponieważ jeśli sprawdzeniu changeset 106 na głównej gałęzi, w rzeczywistości otrzymasz zawartość zestawu zmian 101. Ale byłoby znacznie bardziej czytelne, gdyby podsumowanie kompilacji pokazało prawidłową liczbę.
Pytanie 1: Czy istnieje sposób na manipulowanie wynikiem informacji SourceGetVersion? Może poprzez szablon procesu budowania?
Drugi scenariusz, gdzie TFS zachowuje się dziwnie jest jeszcze gorzej: Kiedy kolejkowanie nowy build, istnieje możliwość wejścia do „Get Version” parametr, jak pokazano na poniższym rysunku:
Gdybym teraz kliknąć na „kolejce”, kompilacja jest wyzwalany i ponownie szczegółowo build wyprowadza changeset 106 choć specjalnie ustawić go dostać changeset 76.
Pytanie 2: Czy to błąd? Czy istnieje poprawka lub coś, aby to naprawić? Czy jest jakaś flaga opcji, którą należy ustawić?
Mam nadzieję, że ktoś wie o tym więcej. Naprawdę nie wierzę, że to błąd, ponieważ jest to tak ważna funkcja, że inne osoby musiały ją wcześniej spotkać.
Dzięki za pomoc !! Christian
EDIT 1
Struktura folderów zespołu projektowego jest:
$ NazwaProjektu
- BuildProcessTemplates
- Dokumentacja
- sourcecode
- Development < - jest to oddział
- 3rdParty
- Źródło
- główna < - to oddział
- 3rdParty
- Źródło
- Development < - jest to oddział
Konstrukcja ciągnie tylko gałąź główną i wszystko poniżej.
EDIT 2
Oto obraz na karcie Workspace w definicji produkcji:
1) Czy możesz podać więcej szczegółów na temat "manipulowania własnością SourceGetVersion"? Co chcesz robić? 2) Nie mam dostępu do kodu źródłowego w tej chwili, aby zobaczyć, co się stało w tym scenariuszu, ale czy kompilacja ma odpowiednią wersję i pokazuje "zły" numer zestawu zmian, czy kompilacja dostaje niewłaściwą wersję? –
@DuatLe - Poprzez manipulację mam na myśli zmianę numeru, który generuje, tj. Zastąpienie "wyzwolonej kopii z ... dla zestawu zmian 106" przez "... dla zestawu zmian 101". Kod źródłowy, który faktycznie pobiera, wydaje się poprawny. Pokazuje tylko niewłaściwą. Wewnątrz bazy danych na serwerze TFS przechowuje również błędne informacje o zestawie zmian. – Christian
Czy Twój build wyciąga tylko gałąź główną ze sterowania źródłami lub z głównej i deweloperskiej? –