кодирование в виртуальной машине Ubuntu на ноутбуке и настольном компьютере - PullRequest
1 голос
/ 11 января 2012

Каков наилучший способ управления кодом между виртуальными машинами и центральным хранилищем SVN?

Если говорить более конкретно, у меня есть рабочий стол с виртуальной средой Linux, а также ноутбук с виртуальной средой Linux. Оба работают под рабочей станцией VMWare. Я постоянно переключаюсь между настольным компьютером и ноутбуком, но не могу синхронизировать настольный компьютер и ноутбук.

Самый очевидный - но, вероятно, наименее эффективный - выбор - просто зафиксировать все, прежде чем я переключу машины. Однако это приводит к частичной завершенности кода, поэтому я могу работать на другом компьютере.

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

Так что, хотя у меня возникает соблазн пойти по пути rsync, я все еще обеспокоен тем, что мне нужно активно синхронизировать вещи. В моем случае я представляю сценарий, в котором я работаю над чем-то на своем рабочем столе, а затем отправляюсь в кафе, чтобы поработать с ноутбуком, только чтобы понять, что я не синхронизировался перед выходом из дома ( DOH!).

Я не знаю, есть ли способ обойти это. Может быть, я мог бы rsync все на центральный сервер, который всегда онлайн? И настраивать задания cron на запуск каждые несколько минут или что-то другое для синхронизации с моими различными средами разработки?

Есть ли лучший вариант?

Ответы [ 2 ]

0 голосов
/ 14 июня 2016

syncd может быть тем, что вы ищете: https://github.com/drunomics/syncd. Он использует inotify и rsync для прослушивания изменений файловой системы rsync измененных файлов на удаленный сервер.

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

0 голосов
/ 12 января 2012

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

Рабочий процесс в настройке DVCS:

  1. Внести изменения на машине № 1, зафиксировать локально, повторить.
  2. Во время переключения фиксируйте локально.
  3. Потяните или протолкните ревизии с машины № 1 на машину № 2
  4. Продолжить работу на машине № 2.
  5. Во время переключения фиксируйте локально.
  6. Вытащить или протолкнуть ревизии с машины № 2 на машину № 1
  7. Повторите

Когда наступит время для фактической отправки на сервер, на каком бы компьютере вы ни находились, должен быть установлен самый последний код, и вы можете отправить его на главный сервер (SVN или любой другой).

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

Альтернативой этому может быть сохранение всего каталога dev в папке Dropbox или каком-либо аналоге. Тогда вам не нужно иметь дело с rsync или чем-то другим самостоятельно, но у вас меньше контроля над синхронизацией.

...