Я безуспешно пытался найти актуальную документацию для Sourcetree, поэтому решил спросить здесь. Я относительно новичок, когда дело доходит до контроля версий, и мой текущий проект - моя первая попытка. Я использую Sourcetree в Windows 7 в качестве интерфейса для Mercurial, у меня есть код разработки на моем локальном компьютере в C:\inetpub, и всякий раз, когда я делаю фиксацию, я затем переключаю Sourcetree на клонированный репозиторий на моей резервной копии. сетевой диск и сделайте Pull изменений, которые я только что зафиксировал, чтобы у меня была резервная копия истории разработки.
Что я пытаюсь понять, так это использование Sourcetree для настройки ветки отладки, чтобы я мог исправлять ошибки в версии кода, работающей на рабочем сервере, одновременно занимаясь разработкой. Очевидно, общая потребность, но я не могу понять это. Я ожидаю, что будет два места кода, поэтому я могу приостановить редактирование в середине ветки "Разработка", внести изменения в "Отладку", а они вернутся к моим изменениям в "Разработке" и закончат их, прежде чем объединять изменения в "Отладке". Если это не так, как это работает, вероятно, это часть моего замешательства. Любые предложения о том, где я могу найти ясность? Указатели на существующие учебники и тому подобное были бы в порядке, просто мне не повезло с поиском в Google, и я не смог найти никакой фактической документации Sourcetree.
ПРИМЕЧАНИЕ. Основываясь на ответах, которые я видел на другие вопросы, которые я читал о Sourcetree и Mercurial, я заранее заявляю, что не заинтересован в обсуждении хостинга внешнего репозитория, если кто-то не сможет объяснить, почему это поможет решить эту проблему.
Ответ 1 · рейтинг 1 · Vince
Две вещи здесь:
- Вам не нужно менять репозиторий для получения, вы также можете отправить из своего локального репозитория;
- Вам не нужно 2 места кода для переключения с одной ветки на другую. Это может помочь для более крупных проектов, но я предлагаю вам сначала освоиться с Mercurial.
Итак, для номера 1 для каждого локального репо существует исходный или удаленный репозиторий по умолчанию. Он либо определяется пользователем, либо является исходным репозиторием, откуда он был клонирован. Независимо от того, нажимаете вы или тянете, по умолчанию будет использоваться тот же источник. Вы также можете использовать push/pull для нескольких источников, но на данный момент это не ваш случай. В обычном рабочем процессе просто отправляйте hg push каждый раз, когда вы делаете коммит, и ваши изменения будут распространяться на другое репо.
Во-вторых, репозиторий Mercurial, как вы уже знаете, может иметь несколько веток. Когда вы фиксируете набор изменений, это автоматически выполняется в текущей ветке. В SourceTree нажмите кнопку "Ветвь" и введите имя новой ветки. Следующий коммит, который вы сделаете, будет головой (и началом) вашей новой ветки. После этого вы можете обновлять туда и обратно между двумя ветвями, и ваш код соответственно изменится. Это означает, что вы можете в любое время обновить заголовок любой ветки, внести некоторые изменения, зафиксировать, а затем перейти к другой ветке и так далее. Так что нет, вам не нужно несколько репозиториев.
Обычно правильной практикой является наличие ветки по умолчанию (имя по умолчанию редко меняется!), где у вас есть текущий исходный код разработки. Для каждой проблемы или функции, которую вы исправляете/реализуете, создайте новую ветку из ветки по умолчанию, чтобы разместить новый код. После того, как эта ветка будет проверена и протестирована, объедините ее обратно со стандартной и закройте предыдущую.
Для вашей текущей разработки, если вам нужен дополнительный стабильный и безопасный ствол, вы можете создать ветку Production, которая будет стабильным кодом, который будет работать на вашем сервере. Как только вы будете удовлетворены стандартными тестами ветвей, вы можете объединить их в рабочей среде, чтобы включить ваши изменения до этого момента.
Как правило, убедитесь, что на вашем сервере всегда работает код из ветки Production для более стабильного кода. По крайней мере, это то, что я понял из вашего первоначального вопроса.