TortoiseSVN: коммит игнорирует меня?

В настоящее время я пишу магистерскую диссертацию и использую TortoiseSVN для хранения резервной копии на freepository.com. Я выполняю религиозные обязательства несколько раз в день, так как много работаю и вношу много изменений в день. Сегодня я снова совершил коммит и, как ни странно, получил сообщение об ошибке, говорящее о том, что моя рабочая копия устарела, что не имеет смысла, учитывая, что я единственный, у кого есть доступ к этому репозиторию, и я всегда работаю на одном и том же компьютере в одни и те же файлы, поэтому версия в репозитории не может быть новее.

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

Итак... что здесь происходит? Черепаха просто игнорировала меня и ничего не совершала (хотя и сказала, что делала)? У кого-нибудь еще была эта проблема раньше?

Спасибо.


person Alix    schedule 27.06.2010    source источник
comment
Доверять свою единственную копию репозитория кому-то еще, кого вы даже не знаете, мне кажется плохой идеей. Возможно, лучшей альтернативой была бы одна из тех распределенных систем управления версиями, таких как git или mercurial, где (если я правильно понимаю) вы можете хранить свое основное репо на локальных дисках и на удаленном сервере, отправляя и извлекая изменения. между ними по необходимости. Если сервер вернулся к резервной копии за последние месяцы, вы отправляете все эти изменения обратно из одной из своих копий. Однако я этого не делал, но, возможно, стоит изучить, если вы хотите сохранить свои основные репозитории в сети.   -  person Steve314    schedule 27.06.2010
comment
Никто не сказал, что это мой единственный экземпляр. У меня один на жестком диске, другой во флэш-памяти и еще один на сервере. Плюс я не потерял тот, что на сервере: они что-то обновляли, и он был временно недоступен. Я получил его обратно.   -  person Alix    schedule 28.06.2010


Ответы (1)


Я использую SVN и TortoiseSVN уже много лет, коммиты являются атомарными, если они не завершатся неудачно (после коммита нет сообщения об ошибке), то вы можете с уверенностью предположить, что он был принят на стороне сервера. В противном случае ничего не было принято.

Один случай, который приходит мне на ум, когда у вас могут возникнуть проблемы даже при работе в одиночку, — это когда вы меняете структуру каталогов, перемещая файлы. Тогда у вас могут возникнуть конфликты деревьев по какой-то причине, которую я не очень хорошо понимаю. В диалоговом окне resolved вы можете проверить, так ли это. (Если да, поскольку вы единственный коммиттер, отметьте все как решенные, обновите и зафиксируйте)

Предположение: на удаленном сервере возникли проблемы, и он снова разместил старую резервную копию в сети? Даже в этом случае он не должен «понизить» ваши локальные файлы и сохранить ваши изменения без изменений.

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

person jdehaan    schedule 27.06.2010
comment
jdehaan, спасибо за ответ. Я проверил страницу поддержки freepository.com, и есть другие люди с этой проблемой. Видимо ремонт делали. Спасибо :) - person Alix; 27.06.2010