Czy a. sln powinien być zaangażowany w kontrolę źródła?

Czy najlepszą praktyką jest popełnienieplik sln do kontroli źródła? Kiedy jest to właściwe lub niewłaściwe?

Update W odpowiedziach znalazło się kilka dobrych punktów. Dzięki za odpowiedzi!

Author: jlembke, 2009-06-23

16 answers

Myślę, że z innych odpowiedzi jasno wynika, że pliki rozwiązań są użyteczne i powinny zostać zatwierdzone, nawet jeśli nie są używane w oficjalnych kompilacjach. Są przydatne dla każdego, kto korzysta z funkcji Visual Studio, takich jak przejdź do definicji / deklaracji.

Domyślnie nie zawierają ścieżek bezwzględnych ani innych artefaktów specyficznych dla maszyn. (Niestety, niektóre narzędzia dodatkowe nie zachowują prawidłowo tej właściwości, na przykład AMD CodeAnalyst.) Jeśli jesteś ostrożny, aby używać ścieżek względnych w swoim pliki projektów (zarówno C++ , jak i C#), będą też niezależne od maszyn.

Prawdopodobnie bardziej przydatne jest pytanie: jakie pliki należy wykluczyć? Oto treść mojego .plik gitignore dla projektów my VS 2008:

*.suo
*.user
*.ncb
Debug/
Release/
CodeAnalyst/

(Ostatni wpis jest tylko dla AMD CodeAnalyst profiler.)

Dla VS 2010, należy również wykluczyć następujące:

ipch/
*.sdf
*.opensdf
 65
Author: Trevor Robinson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-22 05:18:38

Tak -- myślę, że to zawsze właściwe. Ustawienia użytkownika znajdują się w innych plikach.

 57
Author: Lou Franco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 16:50:25

Tak, powinieneś to zrobić. Plik rozwiązania zawiera tylko informacje o ogólnej strukturze rozwiązania. Informacje są globalne dla rozwiązania i prawdopodobnie są wspólne dla wszystkich programistów w Twoim projekcie.

Nie zawiera żadnych ustawień użytkownika.

 19
Author: JaredPar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 16:52:32

Zdecydowanie powinieneś go mieć. Oprócz powodów, o których wspominali inni, konieczne jest stworzenie jednego kroku całego projektu.

 13
Author: Mehrdad Afshari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 16:54:59

Generalnie zgadzam się, że pliki rozwiązań powinny być sprawdzane, jednak w firmie, w której pracuję, zrobiliśmy coś innego. Mamy dość duże repozytorium, a deweloperzy od czasu do czasu pracują nad różnymi częściami systemu. Aby wesprzeć nasz sposób pracy, mielibyśmy jeden duży plik rozwiązania lub kilka mniejszych. Oba mają kilka niedociągnięć i wymagają ręcznej pracy ze strony programistów. Aby tego uniknąć, stworzyliśmy wtyczkę, która obsługuje to wszystko.

The plug-in pozwala każdemu programiście sprawdzić podzbiór drzewa źródeł do pracy po prostu wybierając odpowiednie projekty z repozytorium. Wtyczka następnie generuje plik rozwiązania i modyfikuje pliki projektu w locie dla danego rozwiązania. Obsługuje również odniesienia. Innymi słowy, wszystko, co musi zrobić deweloper, to wybrać odpowiednie projekty,a następnie niezbędne pliki są generowane / modyfikowane. Pozwala nam to również dostosować różne inne ustawienia, aby zapewnić standardy firmy.

DODATKOWO używamy wtyczki do obsługi różnych zasad check - in, co generalnie uniemożliwia użytkownikom przesyłanie wadliwego / niezgodnego kodu do repozytorium.

 8
Author: Brian Rasmussen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 17:26:11

Tak, rzeczy, które powinieneś popełnić to:

  • rozwiązanie (*.sln),
  • pliki projektów,
  • wszystkie pliki źródłowe,
  • pliki konfiguracyjne aplikacji
  • tworzenie skryptów

Rzeczy, które powinieneś Nie zatwierdzić To:

  • opcje użytkownika rozwiązania (.suo) pliki,
  • buduj wygenerowane pliki (np. używając skryptu budowania) [Edit:] - tylko wtedy, gdy wszystkie niezbędne skrypty i narzędzia są dostępne pod kontrolą wersji (aby upewnić się, że buildy są autentyczne w historia cvs)

Jeśli chodzi o Inne automatycznie generowane pliki, Istnieje oddzielny wątek.

 8
Author: Groo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:26

Tak, powinno być częścią kontroli źródła. Gdy kiedykolwiek dodajesz / usuwasz projekty z aplikacji, .sln zostałby Zaktualizowany i dobrze byłoby mieć go pod kontrolą źródła. To pozwoli Ci wyciągnąć kod aplikacji 2 wersje z powrotem i bezpośrednio zrobić kompilację (jeśli w ogóle wymagane).

 5
Author: Arnkrishn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 16:54:31

Yes, you always want to include the .plik sln, zawiera linki do wszystkich projektów, które są w rozwiązaniu.

 4
Author: Josh Weatherly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 16:53:16

W większości sytuacji, to dobry pomysł, aby się zaangażować .pliki sln do kontroli źródła.

If your .pliki sln są generowane przez inne narzędzie (takie jak CMake), więc prawdopodobnie niewłaściwe jest umieszczanie ich w kontroli źródła.

 4
Author: Ferruccio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-06 00:40:44

Robimy, ponieważ utrzymuje wszystko w synchronizacji. Wszystkie niezbędne projekty znajdują się razem i nikt nie musi się martwić o brak jednego. Nasz serwer kompilacji (Ant Hill Pro) również używa sln, aby dowiedzieć się, które projekty należy zbudować dla wydania.

 2
Author: kemiller2002,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 16:53:30

Jedynym przypadkiem, w którym rozważyłbyś, aby nie przechowywać go w kontroli źródeł, byłoby posiadanie dużego rozwiązania z wieloma projektami, które było w kontroli źródeł, i chciałeś stworzyć małe rozwiązanie z niektórymi projektami z głównego rozwiązania dla jakiegoś prywatnego przejściowego wymogu.

 1
Author: Joe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 17:03:47

Tak-wszystko użyte do wygenerowania Twojego produktu powinno być pod kontrolą źródła.

 1
Author: Michael,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 17:18:03

Przechowujemy pliki or solution w kontroli wersji TFS. Ale ponieważ główne rozwiązanie or jest naprawdę duże, większość programistów ma osobiste rozwiązanie zawierające tylko to, czego potrzebują. Główny plik rozwiązania jest najczęściej używany przez serwer kompilacji.

 1
Author: Sylvain Rodrigue,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 18:05:45

Zazwyczaj umieszczamy wszystkie pliki naszych rozwiązań w katalogu rozwiązań. W ten sposób oddzielamy rozwiązanie od kodu i łatwiej jest wybrać projekt, nad którym muszę pracować.

 1
Author: MayorAwesome,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 19:17:29

.slns to jedyna rzecz, z którą nie mieliśmy problemów w tfs!

 0
Author: Code Silverback,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 16:53:45

1) Utwórz nowy projekt w VS
2) Kliknij prawym przyciskiem myszy rozwiązanie w Solution Explorer, wybierz Add to Source Control

Czy sln jest dodany do source control? To twoja odpowiedź.

 -5
Author: Will,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 19:02:30