Ошибка фиксации SVN, но старая редакция в репо была изменена с моим редактированием - PullRequest
1 голос
/ 12 января 2012

Я внес небольшое изменение в файл, который мы используем, и собирался зафиксировать мое редактирование.

$ svn commit -m "comment"
Sending        pom.xml
svn: E160042: Commit failed (details follow):
svn: E160042: File or directory 'pom.xml' is out of date; try updating
svn: E160024: resource out of date; try updating

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

$ svn update
Updating '.':
U    another.unrelated.file
G    pom.xml
Updated to revision 11943.

Как и ожидалось, наши изменения были объединены (в мою рабочую копию, верно?), Поэтому я проверяю статус.

$ svn status

Без изменений? Зачем? Разве объединенная рабочая копия pom.xml не должна быть помечена как измененная? Я бегу svn info, чтобы посмотреть, что происходит.

$ svn info
Path: .
Working Copy Root Path: working/dir
URL: https://not.relevant
Repository Root: https://not.relevant
Repository UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Revision: 11943
Node Kind: directory
Schedule: normal
Last Changed Author: otherguy
Last Changed Rev: 11856
Last Changed Date: 2012-01-04 16:12:42 +0100 (Wed, 04 Jan 2012)

Разве "Последнее изменение" не должно быть моим изменением вместо того, которое otherguy 8 дней назад? Поэтому я смотрю файл репо, чтобы посмотреть, что там на самом деле.

svn cat https://company.com/repo/path/to/pom.xml | less

И показывает объединенную версию файла! (С изменениями, сделанными и мной, и другим человеком).

Что здесь произошло? Svn изменил существующую версию файла с моими изменениями, не обновляя метаданные? Это вообще возможно?

1 Ответ

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

Я думаю, что ваша рабочая копия все еще устарела.

Красная книга гласит:

http://svnbook.red -bean.com / о / 1,5 / svn.ref.svn.c.cat.html

Если ваша рабочая копия устарела (или у вас есть локальные изменения) и вы хотите увидеть HEAD-версию файла в вашей рабочей копии, svn cat -r HEAD FILENAME автоматически получит версию HEAD указанный путь:

Действительно ли ваш локальный файл pom.xml отличается от того, который был извлечен из репо?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...