Какую стратегию вы используете для синхронизации кода при работе из дома?

В моей работе у меня в настоящее время есть среда разработки внутри виртуальной машины. Когда мне нужно делать работу из дома, я копирую свою виртуальную машину и любые базы данных, которые мне нужны, на внешний USB-накопитель на жестком диске ноутбука. Примерно через 10 минут копирования я положил диск в карман и направился домой, скопировал виртуальную машину и базы данных на свой персональный компьютер, и я готов работать. Я выполняю те же шаги, чтобы вернуть работу со мной.

Итак, , если я посчитаю общее количество времени, которое я провожу, ожидая, когда файлы закончат копирование, чтобы я мог вернуться домой и вернуть его обратно, он приближается к 40 минутам! я у меня есть VPN-соединение с моей работой из дома (при условии, что интернет на обоих сайтах) и приличная скорость интернета (8 Мбит/с вверх), но я нахожу Remote Desktoping в своей рабочей машине достаточно лаконичной, чтобы я мог работать моя виртуальная машина напрямую.

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

EDIT: я бы предпочел вариант, когда мне не нужно вносить изменения в управление версиями до того, как я уйду от работы - поскольку мне нравится делать осмысленные описательные комментарии в моих коммитах, фиксация займет больше времени, чем просто копирование моей виртуальной машины на портативный диск! lol Также я бы предпочел решение, в котором моя среда для разработчиков также находится в синхронизации. Сказав, что меня все еще очень интересуют ваши собственные решения, даже если они точно не решают мою проблему так хорошо, как хотелось бы.:)

Ответ 1

Распределенное/децентрализованное решение системы управления версиями удовлетворит ваши потребности, Git, базар, Mercurial, darcs... у вас есть много альтернатив.

Ответ 2

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

Или вы можете использовать Windows Live Sync → https://sync.live.com/foldersharetolivesync.aspx

Ответ 3

Не рекомендовал ли rsync? Используйте rsync-клиент для отправки diff между файлами. Вы можете применить эти различия, обновив свой файл. Для наименьшей передачи файла это, вероятно, лучшая идея.

Ответ 4

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

Ответ 5

Я использую dropbox.

Ответ 6

Мы используем Citrix, а затем я подключаюсь к удаленному рабочему столу на моем ПК. Это не самое быстрое решение в мире, но оно устраняет проблему сохранения двух или более рабочих станций в актуальном состоянии.

Ответ 7

Вот решение, которое я использую.

  • Настройте VPN между офисной сетью и ноутбуком.
  • Установить сервер VisualSVN
  • Загрузите все проекты в SCC.

Когда в офисе я просматриваю проект, работаю над ним, а затем проверяю его. Когда у себя дома или по всему миру я подключаюсь к офису через VPN, проверяю мой проект, делаю что-то, а потом проверяю его. Через VPN-соединение я также могу использовать RDP для своих dev-боксов и серверов.

Надеюсь, это поможет. Удачи!

Ответ 8

Я либо подключаюсь удаленно к офисному SVN, либо VPN и удаленному рабочему столу на своем dev или настольном компьютере и продолжаю работать. Очень редко я синхронизирую файлы, но когда я делаю это обычно с DropBox (хотя вы не можете сделать это с большими файлами).

Ответ 9

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

Ответ 10

Мы работаем с распределенной командой, поэтому важно, чтобы у каждого был простой и безопасный доступ к репозиторию кода. Для этого мы используем SVN поверх ssl/https. Он отлично работает, надежно и надежно.

Ответ 11

Просто настройте сервер SVN на дому, переместите порт маршрутизатора и продолжите свою жизнь. rsync также является хорошим и быстрым решением. Просто не забудьте использовать его через SSH.

Ответ 12

У меня была аналогичная проблема. Но, к счастью, у нас был настроен сервер управления версиями (TFS), поэтому я работаю только с локальными виртуальными машинами, хранящимися на моем внешнем диске, и проверяю требуемые файлы на TFS по мере необходимости.

Ответ 13

вы не указали ОС и систему виртуализации, но если вы работаете с изображениями VM, которые могут быть смонтированы, например. XEN на linux, тогда вы можете смонтировать изображение и синхронизировать его с помощью rsync.

Ответ 14

i подключаюсь к работе в сети офиса и загружаю форму версии lates svn используйте сервер Dev mysql так что я просто как компьютер пыльников в офисной сети.

Ответ 15

Я предполагаю, что большая часть времени, затраченного на копирование, связана с базой данных. Это правильно? Если да, не можете ли вы просто подключиться к своей рабочей БД из дома, используя ваше VPN-соединение?

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

Ответ 16

Если вам нужна только виртуальная машина с вашего рабочего компьютера, вы можете установить удаленный каталог (используя nfs или smb), где хранятся файлы вашей виртуальной машины, и оттуда запускать эту виртуальную машину. Это должно быть быстрее, чем использование удаленного рабочего стола.

Ответ 17

В зависимости от используемого программного обеспечения VM, почему бы вам не настроить 2 разных виртуальных диска, сохраните файлы вашего профиля /dev на одном диске, а также ОС и другие программы, которые редко меняются.

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

Ответ 18

Я также использую DropBox, и это важно, потому что важно сохранить его простым.

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

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

Ответ 19

Это была проблема для меня тоже. Итак, компания купила мне ноутбук, и я делаю свою работу над ним, дома или где-либо еще.

Ответ 20

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

Я использую Live Sync Live Sync от Microsoft к этому. Для использования этой системы вам необходимо создать идентификатор Windows Live ID. Он работает для окон и маков.

Ответ 21

Dropbox и Microsoft Live Sync - это хорошие варианты, о которых уже упоминалось. Мой личный фаворит Live Mesh, также от Microsoft. На мой взгляд, одна замечательная функция, которая ставит ее над двумя другими, - это возможность указать, какие папки синхронизируются на каких компьютерах и где находятся папки. Так, например, я синхронизирую мою папку Visual Studio 2005/Projects между моей рабочей машиной и моим блоком dev дома, и я синхронизую Visual Studio 2008/Projects между моей боковой виртуальной машиной VM и моей домашней dev box.

Ответ 22

У меня есть macbook со всем моим программным обеспечением dev на нем; когда я иду на работу, я запускаю его в целевом режиме FireWire и подключаю его к моей работе macpro с быстрым процессором, подключением к LAN, большим монитором и т.д. Таким образом, мне никогда не придется покидать папку пользователя, но у меня есть доступ ко всем программного обеспечения и оборудования, доступных на работе.