Два программиста, работающие над программой Visual C # - PullRequest
2 голосов
/ 28 ноября 2009

Я и другой программист работаем над той же программой в Visual C #. Я позволил ему поработать над этим, а затем он загрузил его, а затем я поработал над ним, а затем я загрузил его, чтобы он мог поработать над этим. Мы по очереди меняем исходный код.

Однако, это довольно медленно. Было бы лучше, если бы мы могли одновременно работать с исходным кодом, не переходя по очереди, и тогда мы могли бы легко объединить наши изменения. Есть ли способ сделать это?

Ответы [ 6 ]

25 голосов
/ 28 ноября 2009

Контроль версий ... Взгляните на Subversion с интерфейсом TortoiseSVN.

http://en.wikipedia.org/wiki/Source_control

3 голосов
/ 28 ноября 2009

Вот почему появились системы контроля версий. Теперь вам нужен один. Взгляните на доступные программы и выберите: http://en.wikipedia.org/wiki/List_of_revision_control_software

3 голосов
/ 28 ноября 2009

Как сказал Майк С., Source Control позволяет вам это делать. Управление исходным кодом создает центральное место, где хранится код, и позволяет командам одновременно работать над одним и тем же кодом контролируемым образом. Когда два программиста изменяют один и тот же файл, второй, который регистрируется (загружает свои изменения в репозиторий контроля версий), получает предупреждение о том, что другой программист изменил тот же файл и позволяет ему / ей объединить оба изменения, если между ними есть конфликт .

Другие преимущества заключаются в том, что он хранит историю всех изменений, внесенных каждым программистом, чтобы вы могли легко отследить, кто внес эти изменения.

1 голос
/ 28 ноября 2009

Как уже говорилось выше, вам действительно нужно заглянуть в систему контроля версий. Subversion может быть самым простым для вас, и вы можете выбрать другую компанию для размещения ее для вас в зависимости от ваших требований. Используйте Ankhsvn или VisualSVN внутри Visual Studio или TortoiseSVN , как предлагается.

Если этот проект с открытым исходным кодом, вы можете разместить его в Google Code или Github, в противном случае взгляните на Assembla , если вы не можете настроить боксен для размещения своего хранилища. С Assembla вы также получаете копию Trac , которая также предоставит вам систему управления проектами (хотя я использовал Trac последние 3 года, с тех пор я перешел на Redmine ). Но есть и другие инструменты, такие как Jira + Confluence и т. Д., Если у вас есть настройка исходного репозитория.

Пожалуйста, держитесь подальше от Visual Source Safe. Team Foundation Server - это еще один инструмент, над которым вам нужно серьезно подумать и определить, понадобится ли вам целый пакет, прежде чем заняться им.

Если вы пользуетесь TortoiseSVN, установите WinMerge , который будет автоматически зарегистрирован как инструмент Diff, и даст вам немного больше удовольствия при выполнении сложных слияний: -)

1 голос
/ 28 ноября 2009

Как уже говорили другие, «контроль источника» (также известный как «SCM») - это то, что вы хотите; на самом деле то, что вы написали:

оба работают над исходным кодом на в то же время, не по очереди, и тогда было как-то мы могли легко объединить наши изменения

... в значительной степени определение управления исходным кодом. (Есть еще одна важная особенность SCM - отслеживание истории, как упоминал Андрес.)

Subversion, безусловно, продукт, который вы должны попробовать. Он хорошо документирован, современен (то есть: ни одна из «старых» проблем CVS) и относительно прост по сравнению с более мощными распределенными системами, такими как Git.

Одно важное замечание: «легко объединять наши изменения» - это то, что требует определенного обучения и практики. «Слияние» - это практика взятия кода из двух разных источников и объединения их таким образом, чтобы это ничего не нарушало. Это может быть сложно и довольно запутанно, пока вы не получите более глубокое понимание того, как это работает. Я бы порекомендовал выделить один день с вашим партнером, разработчиком, и потренироваться в генеральных переодеваниях, чтобы объединить ваши изменения до того, как вы попробуете сделать это в реальном коде. Опять же: Subversion - отличный инструмент, потому что документация очень хорошая и четко написана.

1 голос
/ 28 ноября 2009

Есть много хороших бесплатных программ контроля версий. Я лично использую Bazaar, с ним очень легко работать, и он хорошо работает с Windows. Mercurial также хорош, как и Git по всем параметрам, хотя я сам этим не пользовался. Все эти три являются так называемыми распределенными системами контроля версий, что означает, что вам не нужно настраивать центральный сервер. Поэтому для двух парней это должно быть все, что вам нужно.

Однако, если вы хотите выбрать системы с центральным репозиторием (выписка / регистрация ...,), Subversion и Perforce великолепны. Perforce - коммерческая система, но только для 2 пользователей лицензия бесплатна. Хотя даже используя этот тип рабочего процесса, вы можете адаптировать любую из упомянутых выше распределенных систем для работы таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...