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

Это походит на что-то, что я должен знать к настоящему времени, но по любой причине я не делаю. У меня также нет большой удачи при поиске по теме.

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

Некоторый простой совет относительно того, как, или то, что использовать, чтобы помочь нам отследить наши изменения кодирования, было бы большим. И, это - большая часть того, почему мы делаем его во-первых.

50
задан jsmith 2 July 2019 в 21:51
поделиться

8 ответов

Похоже, вам нужен контроль источника! Вы вообще изучали Subversion (SVN) ? Для него есть замечательный клиент Windows под названием TortoiseSVN . Оба являются бесплатными и с открытым исходным кодом.

Вы должны установить сервер Subversion на одной из своих машин или где-нибудь на веб-сервере. Затем вы оба фиксируете свои изменения на сервере через регулярные промежутки времени, и сервер управляет такими вещами, как редактирование, комментарии, которые вы прикрепляете к фиксации и т. Д. С помощью клиента вы можете делать такие вещи, как просмотр различий между версиями и изменения слияния (автоматически или вручную) внутри файлов. Это также упрощает добавление других разработчиков в ваш проект, просто предоставив им доступ к вашему серверу Subversion. Существуют плагины SVN для Eclipse и Visual Studio , или вы можете использовать TortoiseSVN, который может запускаться автономно в командной строке и интегрируется с оболочкой Windows (см. ниже).

Интеграция оболочки TortoiseSVN http://olex.openlogic.com/wazi/wp-content/uploads/2009/03/create_repo_tortoisesvn.png

Что мне больше всего нравится в TortoiseSVN, так это то, что он полностью независим от языка или IDE и я могу использовать его для проектов Java из Eclipse, проектов .NET из VS2008 или для разработки драйверов на C / C ++.

Обратите внимание, что инструмент SubWCRev , поставляемый с TortoiseSVN, также предоставляет COM-интерфейс , который позволяет вам делать интересные вещи, например, программно проверять, кто и когда сделал последний коммит номер версии и т.д. Я упоминаю об этом, потому что об этом не так много информации, кроме документации TortoiseSVN, и это было действительно полезно для меня, когда я недавно написал надстройку VS2008, которую я использую в своих проектах .NET, для автоматической синхронизации номера версии и увеличения номера сборки.

Ряд сайтов предоставляют бесплатный доступ к репозиторию SVN для проектов с открытым исходным кодом (или платный доступ для закрытых исходных кодов / коммерческих продуктов), например Google Code и Sourceforge . Эти онлайн-хранилища также могут быть очень полезны для проектной работы, особенно если вы студент, работающий над групповым проектом.

43
ответ дан 5 July 2019 в 01:44
поделиться

Тип программного обеспечения, который вы ищете, - это система управления версиями (также называемая контролем версий). Это огромная тема, но я бы начал с поиска ее в Википедии, а затем поискал бы тип системы управления версиями, который работает с языком и инструментами, которые вы используете. (Пример. Team Foundation Server как вариант для Visual Studio, SVN как хорошее универсальное решение и т. Д.)

В конечном итоге вы собираетесь запросить предложения о том, какой инструмент управления версиями использовать. В нашей команде мы используем SVN (также известный как SubVersion), это очень хорошее бесплатное решение с открытым исходным кодом, которое работает практически со всем.

Ссылка на Википедию:

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

9
ответ дан 5 July 2019 в 01:44
поделиться

Простой ответ заключается в том, что вам нужно какое-то программное обеспечение для контроля версий.

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

Если вы только начинаете, выбор простого в использовании инструмента является ключевым моментом. Subversion - хороший выбор, потому что у нее есть несколько отличных реализаций графического интерфейса, но она по-прежнему обеспечивает большую мощность и гибкость, когда вы начинаете работать с ней на уровне командной строки.

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

8
ответ дан 5 July 2019 в 01:44
поделиться

Если вы хотите немного узнать о Git, вы можете разместить свою работу на github.com и при этом оба работать над ней отдельно.

7
ответ дан 5 July 2019 в 01:44
поделиться

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

Использование инструмента в вашем случае очень простое. Выберите систему контроля версий и научитесь ею пользоваться. Вариантов много, но самый важный фактор - это инструментальная поддержка. Например, инструменты мучительного типа отлично подходят для пользователей Windows (TortuiseSVN, ToruiseCVS, TortuiseHg), поскольку они интегрируются в оболочку Windows и позволяют видеть, что произошло с каждым файлом и каталогом, применяя к ним различные значки (красный восклицательный знак для изменения, зеленый ок и т.д ..).

Вторая, самая важная часть - это процесс. Большинство команд ломают голову на этом, и требуется время, чтобы принять один и все, чтобы следовать ему. Вы, и ваш партнер должен согласиться с одним и тем же процессом, и вы оба должны ему следовать.

Процесс будет включать в себя базовую организацию папок, то, что будет помещено и где, как и когда вы будете фиксировать / оформлять и какой код вы будет вставлен.

На мой взгляд, здесь есть две важные вещи:

  1. Код в репозитории всегда должен быть готов к сборке, чтобы другой парень продолжал работать без проблем.

  2. Все должны знать, что делать положить и где, например, одна папка будет выбрана для исходного кода, а другая - для базы данных и т. д.

Вот пример простого процесса:

  1. Установите сервер репозитория (svn, mercuiral и т. д.). Для вас единственное отличие - это поддержка инструментов.
  2. Согласуйте общую структуру репозитория (документы, исходный код, дополнительные материалы)
  3. Обновляйте в начале каждого дня
  4. Часто фиксируйте, перед каждой фиксацией обновление из репозитория
  5. В конце каждого дня фиксация
4
ответ дан 5 July 2019 в 01:44
поделиться

за последние 6 месяцев, я перешел на git, и я им очень доволен. но в целом cvs | svn | git являются наиболее распространенными SCM с открытым исходным кодом (управление исходным кодом), и любой из них должен соответствовать вашим потребностям.

3
ответ дан 5 July 2019 в 01:44
поделиться

«или какой-то клиент общего доступа, который мы могли бы использовать»

Контроль версий, вероятно, является официально рекомендуемым подходом, однако самый простой способ поделиться файлами - установить что-то вроде DropBox .

Вы регистрируете бесплатную учетную запись объемом 2 ГБ, используя имя пользователя и пароль, общие для вас и вашего друга. Затем вы устанавливаете клиент DropBox на свой компьютер и компьютер друзей и используете общую учетную запись.

После запуска Dropbox создает папку в разделе «Мои документы» с именем «Мой Dropbox». Теперь все , что вы делаете в этой папке, например создание, редактирование, удаление файлов и папок, будет автоматически синхронизироваться с папкой «Мой Dropbox» на ПК ваших друзей и наоборот. Все, что требуется - это доступ в Интернет.

Вы также получаете историю и версии ваших файлов, поэтому при необходимости вы можете выполнить откат и вернуться к более ранним версиям. Если вы оба работаете с одними и теми же файлами одновременно, как и в системе управления версиями, вам нужно будет вручную объединить файлы, но в этом случае Dropbox сохраняет «конфликтующую копию».

Я сам использовал Dropbox почти год и я очень доволен простотой использования. Я не работаю в Dropbox и не имею с ними ничего общего, кроме как счастливого пользователя.

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

в данном случае.

Я пользуюсь Dropbox почти год и очень доволен простотой использования. Я не работаю в Dropbox и не имею с ними ничего общего, кроме как счастливого пользователя.

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

в данном случае.

Я использую Dropbox почти год и очень доволен простотой использования. Я не работаю в Dropbox и не имею с ними ничего общего, кроме как счастливого пользователя.

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

2
ответ дан 5 July 2019 в 01:44
поделиться

Research Source Control. Вот хорошее вступление:

http://www.ericsink.com/scm/source_control.html

Многие из них могут быть размещены в Интернете бесплатно или за небольшую плату, чтобы вы и ваш партнер могли сотрудничать через Интернет, если вы не являетесь в ситуации, когда у вас есть общий сервер, вы можете пойти по этому маршруту со многими клиентами системы управления версиями (например, SVN с черепахой и т. д.). В остальном GitHub (не единственный) - это распределенная система управления версиями. Сначала может показаться немного сложным, но это пример.

3
ответ дан 5 July 2019 в 01:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: