"svn log", не отображающий все последние коммиты

Примечание. Это, вероятно, нелегко для опытных пользователей SVN, но он довольно сильно меня озадачил... так что надеюсь, что это поможет кому-то, как я!

После выдачи svn log из командной строки я заметил, что несколько недавних сообщений фиксации отсутствовали. Я знал, что эти сообщения были правильно сохранены в моем репозитории, потому что они отображались в моем SVN-клиенте (RapidSVN). Я просто не мог понять, почему они не будут видны с помощью командной строки svn.

Ответ ниже...

Ответ 1

Проблема была связана с моим плохим пониманием того, что показывал svn log. При отсутствии других аргументов он выводит сообщения журнала из рабочей копии журнала, а не из реального репозитория. Таким образом, выдача svn update приведет к обновлению рабочей копии с репозиторией, а затем svn log будет отражать все последние коммиты. Duh!; -)

Ответ 2

Если вы хотите просмотреть полный журнал без обновления (как это иногда бывает при работе с старой версией), вы можете запустить:

svn log -r HEAD:0

Или, для упрощения просмотра:

svn log -r HEAD:0 | less

Ответ 3

Вы также можете явно указать svn log для перехода на сервер, указав URL-адрес хранилища.

например

svn log svn://your-server/trunk

Или в более общем и кратком виде:

svn log ^/

Ответ 4

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

Это происходит только из-за странности подрывной деятельности. Существует концепция рабочей копии, для которой задана ревизия, которая была первоначально извлечена. Редакция рабочей копии не изменяется новыми коммитами. svn update требуется для обновления/синхронизации редакции рабочей копии с хранилищем. Не уверен, что я хотел бы сделать это в каждом сценарии.

PS: git намного лучше.