2014-02-07 3 views
1

На моем рабочем месте мы довольно долгое время используем SVN (довольно неэффективно) и, наконец, рассматриваем способы, которыми мы можем включить Git в наши повседневные рабочие процессы. Поскольку я являюсь одним из немногих сотрудников, у которого есть некоторый прошлый опыт работы с Git (управление персональными проектами в GitHub), я играю с git svn, чтобы использовать его в качестве клиента в нашем svn-хранилище на время и, надеюсь, писать некоторые документы, чтобы помочь другим разработчикам познакомиться с Git, не требуя от нас переместить весь наш контроль источника и построить систему.git and svn shared directory

Я клонировал нашу основную ветвь разработки SVN, используя следующую команду в мерзавце Баше:

git svn clone -r HEAD path_to_svn Work 

И он успешно создал свою рабочую папку и разрушал все мои файлы. Я просматриваю некоторые примеры рабочих процессов на этом website for git svn tutorials, которые выглядят очень многообещающими. Тем не менее, мне интересно, может ли мой новый рабочий каталог ссылаться на репо SVN, а также на Git. Мы используем TortoiseSVN в качестве нашего клиента для SVN, и то, что я особенно ищу, - это возможность щелкнуть правой кнопкой мыши на клонированном репо SVN в Windows и получить доступ к таким инструментам, как "Check for modifications", чтобы узнать, какие различия существуют между текущей базой кода и информацией, содержащейся в удаленный репозиторий SVN.

В идеале, я хотел бы иметь возможность продолжать использовать наши инструменты TortoiseSVN и создавать диалоговые окна, когда приходит время фактически нажимать изменения на сервере, одновременно используя все, что удивительно в ветвях в Git и создании более продуктивных рабочих процессов. Я чувствую, что будет достойный переходный период, когда люди, борющиеся с этими новыми технологиями, поэтому я хочу сделать этот опыт максимально дружелюбным. Возможно ли это? Или, переключившись на git-svn, я вынужден использовать git в качестве моего эксклюзивного клиента для сервера SVN и использовать такие команды, как git svn dcommit, чтобы на самом деле нажать мою работу.

ответ

1

Когда вы git svn clone SVN-репозиторий, вы получаете локальный Git-репозиторий с исходным SVN как удаленный (и можете тянуть | push Subversion с Git-клиентом). Таким образом - вы можете использовать SVN-клиент на Work: у него есть ничего СВН-не связанных

Вы можете попробовать объединить обе рабочие каталоги в одном каталоге, но - с головной болью (не тестировался - проверка той же ревизии в другое место с SVN, переместить папку .svn в Work, игнорировать .git папку в Subversion и .svn папку в Git) без гарантированных хороших результатов

1

Поскольку вам удобно с TortoiseSVN, я бы рекомендовал вам использовать TortoiseGit. UI & опыт очень идентичен. См. Здесь около screenshots TortoiseGit. Создание git-репо в том же месте, что и svn, не является хорошей идеей. Потому что если вы используете TortoiseSVN для фиксации ваших изменений в svn, git repo не находится в том же состоянии. Итак, в следующий раз, когда ваш рабочий каталог будет в конфликте с изменениями, git пытается вытащить. Вместо этого я бы предположил, что у вас есть ваш svn-репозиторий отдельно от вашего git-клона. Поэтому, если по какой-то причине вам не ясно, что вы делаете в git, вы всегда можете переключиться на svn. Но не полагайтесь слишком много на резервную копию (например, svn), если вы действительно хотите использовать git-svn.