Сбой совместной работы SVN - PullRequest
3 голосов
/ 15 июня 2011

Сегодня первый день, когда я играю с SVN.Однако 1 ситуация, которую я не могу решить:

Я оформляю заказ на 2 компьютерах. Первый компьютер ПК изменяет что-то в файле и фиксирует.Затем второй компьютер пытается выполнить коммит:

Commit failed (details follow):
File '/classes/ghjs.html' is out of date

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

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

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

Я использую «версии» в качестве клиента SVN и TextWrangler в качестве редактора для редактирования PHP-кода.

Ответы [ 3 ]

5 голосов
/ 15 июня 2011

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

Нет, они не потеряны.Они объединены в вашу локальную копию (как вы и ожидаете), и после обновления вы можете добавить их в хранилище.Если в результате слияния возникнут конфликты, вы получите уведомление, но работа все равно не будет потеряна.

Если вы потеряли свои изменения после обновления, вы сделали что-то не так - я совсем не знаком с версиями, поэтому яне могу сказать.

0 голосов
/ 15 июня 2011

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

Это делается таким образом, чтобы у SVN было место для слияния двух изменений.,Слияния выполняются в рабочей копии, а не на сервере.

Если ваши изменения с ПК2 теряются при обновлении и ошибки слияния не отображаются, то это действительно может быть проблемой.

0 голосов
/ 15 июня 2011

Локальные изменения файлов на ПК 2 не должны быть потеряны на svn update.Они будут объединены с изменениями, внесенными на pc1 и зафиксированы.Если изменения будут внесены в те же строки, находящиеся в конфликте, вы не сможете зафиксировать их до тех пор, пока конфликт не будет разрешен, выбрав сохранение изменений в любой из версий файла.Вы не должны терять локальные изменения после обновления.

...