SVN: как проверить две локальные копии одного и того же репозитория

У меня есть библиотека печатных плат, управляемая SVN, которую я использую на работе и дома. Файлы извлекаются на моей офисной рабочей станции.

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

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

Я не уверен, что означает синхронизация.

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

Как проверить две локальные копии одного и того же репозитория?


person J.Bischof    schedule 07.01.2013    source источник


Ответы (4)


Вы можете проверить две локальные копии одного и того же репозитория:

svn checkout file:///var/svn/repos/test mine1

тогда

svn checkout file:///var/svn/repos/test mine2

http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.checkout.html

person Eric Leschinski    schedule 07.01.2013

Выходя из офиса, копируйте всю папку рабочей копии с ПК вашей компании на внешний жесткий диск каждый раз, когда вы покидаете офис и хотите работать дома. Если вы делаете какие-либо изменения дома, вы фиксируете изменения с внешнего жесткого диска, когда снова находитесь в офисе. Затем вы делаете «обновление» на своей рабочей копии, расположенной на ПК компании. Таким образом, у вас всегда будет функциональная рабочая копия на вашем компьютере в компании, и вы сможете работать дома.

person static-max    schedule 07.01.2013

Есть два решения:

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

  2. Вы можете использовать DCVS, например Mercurial, для создания децентрализованной копии. Mercurial умеет общаться с Subversion и может создавать автономные репозитории.

Используя второй подход, вы можете создать репозиторий Mercurial на внешнем жестком диске. При использовании push/pull он будет общаться с вышестоящим репозиторием Subversion. Но вы можете взять диск домой, клонировать репозиторий на свой персональный компьютер (или работать с копией на внешнем жестком диске).

У этого есть дополнительное преимущество, заключающееся в том, что Mercurial позволяет вам зафиксировать вашу работу, даже если вы не подключены к какой-либо сети — Mercurial сохраняет информацию о фиксации в репозитории до тех пор, пока вы не скажете ему отправить изменения в Subversion.

Введение в Mercurial см. здесь: http://hginit.com/

Существует несколько способов соединения Mercurial и Subversion, см. здесь список плюсов и минусов: https://www.mercurial-scm.org/wiki/WorkingWithSubversion

person Aaron Digulla    schedule 07.01.2013
comment
Ваше первое предложение - это то, что я на самом деле пытаюсь сделать, но, похоже, я сделал что-то не так... Я хочу, чтобы это было просто (и глупо), не будет никакой параллельной разработки, поэтому не должно быть никаких конфликтующих файлов. (Мы говорим об электронной библиотеке деталей, которой управляю только я. Не о реальных проектах печатных плат). Но все же, когда я попытался выполнить фиксацию с внешнего жесткого диска, возникло несколько конфликтов файлов. Понятно, что если я что-то коммит, то это было изменено. Но только в конце, откуда я совершаю. Поэтому я должен просто зафиксировать и обновить другую рабочую копию. Не получилось... - person J.Bischof; 08.01.2013
comment
Но, как вы говорите, это ДОЛЖНО работать именно так, как я (и вы) это описали? Не проблема иметь несколько проверок одного и того же репозитория на одной рабочей станции? - Мой менеджер сказал, что это плохая идея.. - person J.Bischof; 08.01.2013
comment
Если у вас возникают конфликты после коммита с внешнего HD, то может быть проблема с файловой системой. Вы форматировали диск в NTFS или FAT32? - person Aaron Digulla; 08.01.2013
comment
Все HDD отформатированы в NTFS. Проверяет ли SVN метку времени файла или содержимое файла? - person J.Bischof; 08.01.2013
comment
Я не уверен. Я знаю, что он проверяет содержимое, но я не уверен, считается ли файл с измененной отметкой времени измененным. - person Aaron Digulla; 08.01.2013

Если я правильно понимаю проблему... вы можете использовать для этого Dropbox.

Извлеките репозиторий в папку Dropbox, после чего все файлы будут синхронизированы с Dropbox. Затем вы можете настроить Dropbox на своем домашнем и рабочем ПК и получить доступ к своим файлам на работе или дома.

person cowls    schedule 07.01.2013
comment
Примечание. Dropbox удобен, но не на 100% безопасен для посторонних глаз (по сравнению с жестким диском, который вы берете с собой). Маловероятно, что поставщики услуг будут просматривать данные, которые вы сохраняете в своем почтовом ящике, но вы не можете быть уверены, что они этого не сделают. Не используйте облачные службы для конфиденциальных данных. Если вы сомневаетесь, получите письменное одобрение своего начальника. - person Aaron Digulla; 07.01.2013
comment
Да, вот в чем проблема... Конфиденциальные данные компании в облачном хранилище: никуда не деться :( Проще всего было бы просто предоставить мне онлайн-доступ к серверу компании, но это уже угроза безопасности, которую мы не можем (или не не хочу) себе позволить. - person J.Bischof; 08.01.2013
comment
Я надеюсь, что ваш жесткий диск зашифрован :) - person cowls; 08.01.2013
comment
На самом деле это не так, но я держу его при себе и защищаю ценой своей жизни :) Но на самом деле это хорошо, я мог бы захотеть зашифровать этот диск ... - person J.Bischof; 08.01.2013
comment
лол, да, я бы хотел, если вы беспокоитесь об облачном хранилище, я думаю, что, вероятно, было намного больше инцидентов, связанных с потерянными жесткими дисками / дисками. - person cowls; 08.01.2013