Используйте Мерзавца для моего собственного и Подверсии в компании

Я хотел бы использовать Мерзавца для своей собственной цели, и я должен использовать репозиторий Подверсии в своей компании. Я знаю, что существует 'мерзавец svn' команда, но она требует lineral истории также в репозитории мерзавца. Проблема с этим состоит в том, что я хотел бы: - для синхронизации репозитория мерзавца с другим моим репозиторием мерзавца на моем удаленном диске так, чтобы я мог синхронизировать его с другим репозиторием мерзавца на другом компьютере, - и самое важное: Я хотел бы фиксировать часто в моем репозитории мерзавца и когда я решаю, что это, которое небольшие шаги стоят для фиксации (достаточно большой для совместного использования), я хотел бы фиксировать их svn, но только с одной фиксацией... Таким образом, я не хотел бы показывать всему моему мерзавцу (mayby иногда глупые, слишком маленькие фиксации только для запоминания чего-то) в svn, - и с 'мерзавцем svn', я не могу использовать ответвления (потому что, когда я объединяю их с ведущим устройством, у ведущего устройства не будет lineral истории).

Помогите... Возможно, существует некоторый рабочий процесс, в котором я могу использовать мерзавца в, он - полная слава и svn для фиксации больше (не мое 'частное'..., возможно, очень небольшие изменения и который в течение некоторого времени casue, что треска не компилирует), изменения в моем репозитории компании.

Заранее спасибо!

5
задан miki 27 January 2010 в 10:34
поделиться

4 ответа

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

Попробуйте:

git remote add external-repo ssh://host/path/to/git/repo.git
git push origin external-repo

Я хотел бы часто посещать в моем репозитории Git, и когда я решаю, что эти маленькие шаги стоит совершить (достаточно большие, чтобы поделиться), я хотел бы совершить их в SVN, но только с одним коммитаром.

Нет пота. Свернуть несколько коммитов с GIT REBASE -I (это называется «сквошным») и решить, хотите ли вы сохранить, выбросить или сквош каждый коммит в более крупный. Это очень полезно для того, чтобы быть организованным, прежде чем подталкивать на внешнее репо. -I предназначен для «интерактивного» режима.

С «GIT SVN» я не могу использовать ветви (потому что, когда я объединяю их с мастером, мастер не будет иметь линию линию).

Это не правда. Просто установив ветку на Git для каждой ветви, которую вы хотите отслеживать с SVN . В противоположном направлении вы в любом случае выталкиваете одну ветку.

8
ответ дан 18 December 2019 в 14:46
поделиться

Вместо интерактивной ребазы вы также можете использовать Git Merge --squash на "официальном" филиале.

git checkout master
git merge --squash development

Это имеет преимущество, что он не разрушит вашу историю развития. Теперь вы можете создать большой коммит, содержащий все ваши изменения, или вы можете сбросить индекс (с использованием RESET ) и использовать Git Add -p или GIT GIT Чтобы создать любое количество отдельных коммит от вашего ветви, которое вы бы вы могли бы нормально посчитать Master и GIT-SVN DCommit их при необходимости.

2
ответ дан 18 December 2019 в 14:46
поделиться

Что я делаю (и самый простой способ сделать это) - не пытаться управлять двумя методами контроля источника одновременно. Я использую Git для моего собственного контроля версий. Несколько раз в неделю, когда я готов совершить центральный репозиторий, я проверяю мастерскую ветви в Git и зафиксировать его на TFS. Изменения с сервера проверяются в мою ветку Dev и объединились в мой код.

Это не элегантно, по любому средствам, но поскольку я только проверю / регистрацию от центрального репо, несколько раз в неделю, он отлично работает.

1
ответ дан 18 December 2019 в 14:46
поделиться

Я постоянно так работаю в своей компании (на самом деле больше не выношу подрывной деятельности). Почему ты думаешь, что не можешь использовать ветки с git svn? Вы не только можете использовать их, но и совершать коммиты из них прямо обратно в субверсию.

Для слияния коммитов вы используете что-то вроде git'овского ребазинга удалённых/магистральных - интерактивных и сквош-коммитов вместе. Однако вы не можете одновременно поддерживать и расширенную версию, и сокращённую. Вы либо получаете все крошечные коммиты, либо получаете сжатые.

2
ответ дан 18 December 2019 в 14:46
поделиться
Другие вопросы по тегам:

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