LINUX.ORG.RU

[SVN] Ошибочно внес под контроль версий файл. Теперь не могу снять контроль.

 


0

0

Здравствуйте!

Ошибочно внес под контроль версий SVN пару файлов. Решил снять для них контроль версий. Находясь в каталоге с этими файлами, даю команду delete и получаю:

# svn delete parseconf_md.cpp parseconf_md.h
svn: Use --force to override this restriction
svn: 'parseconf_md.cpp' has local modifications

Далее смотрю что получилось:

# svn status
A      .
A      parseconf_md.cpp
A      parseconf_md.h

То есть, из-под контроля версий файлы не вышли.

Если команду сопроводить, как советуется, флагом --force, то файлы parseconf_md.cpp и parseconf_md.h будут вообще удалены с диска (проверено) да так, что вернуть их командой "svn revert parseconf_md.cpp parseconf_md.h" будет невозможно (проверено).

Я не пойму, как в SVN убрать контроль версий над нужными файлами?


> Если команду сопроводить, как советуется, флагом --force, то файлы parseconf_md.cpp и parseconf_md.h будут вообще удалены с диска (проверено) да так, что вернуть их командой «svn revert parseconf_md.cpp parseconf_md.h» будет невозможно (проверено).

И что тебя не устраивает?

tailgunner ★★★★★
()

Блин, такая же фигня, если делать это и из-под kdesvn.

Пишет вот что:

parseconf_md.cpp has local modifications
xintrea
() автор топика
Ответ на: комментарий от tailgunner

> И что тебя не устраивает?

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

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

xintrea
() автор топика

удалить файл и добавить в игнор

yltsrc
()
Ответ на: комментарий от xintrea

> Это что, получается, файл можно поставить под контроль версий, а вывести его из-под контроля нельзя, надо только удалять?

Это получается, что ты не знаешь, как вывести файл из-под контроля версий, а пытаешься его удалить (что SVN и делает). Я бы попробовал svn revert (в Mercurial как раз revert - то, что нужно в такой ситуации). Не помогло бы - почитал бы документацию.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

В документации непонятно написано. Я думал, что revert используется для отката изменений, сделанных в файле, на предыдущее состояние.

xintrea
() автор топика
Ответ на: комментарий от yltsrc

> ну так файл или нужен или нет - это же очевидно

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

tailgunner ★★★★★
()
Ответ на: комментарий от yltsrc

> чтобы не было таких ошибок и придумали svn ignore

(со вздохом) не для этого придумали svn:ignore. Можешь попробовать svn add на файле из svn:ignore - он добавится.

Учите уже матчасть, а?

tailgunner ★★★★★
()

пипец, про сабвершн прочесть пару страниц сложно?
# svn status
A .
A parseconf_md.cpp
A parseconf_md.h

это значит, что они добалены но еще не занесены по commit в репозиторий, какой нафиг revert к ним?

cp ./parseconf_md.* /tmp/
svn --force delete parseconf_md.cpp parseconf_md.h
cp /tmp/parseconf_md.* ./

anonymous
()
Ответ на: комментарий от anotheranonymous

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

1)и так, если он НЕ сдела коммит, достаточно всего лишь svn revert файлы и они не будут добавлены в репозиторий при следующем коммите, при чем тут svn delete не понятно. 2) если коммит уже был, то см. выше пару постов

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.