Изменения в подпапке SVN externals не отображаются в журнале просмотра (черепаха SVN) - PullRequest
11 голосов
/ 15 сентября 2008

Внешние элементы SVN позволяют отображать папку SVN так, как будто она находится в другом месте. Для этого полезно использовать общую папку для всех ваших проектов в SVN.

У меня есть папка / trunk / common в SVN, которой я делюсь через несколько разных проектов.

Пример:

  • Project1: / trunk / project1 / зависит
  • Project2: / trunk / project2 / зависит
  • Project3: / trunk / project3 / зависит
  • Project4: / trunk / project4 / зависит

Каждая из этих зависимых папок пуста, но для нее определен svn: external, указывающий на мою папку / trunk / common.

Проблема заключается в том, что при просмотре журнала в любом из проектов: / trunk / projectX / в нем не отображаются изменения из svn: externals Я использую черепаху SVN в качестве моего клиента SVN.

Кто-нибудь знает, как изменить это поведение? Я хотел бы, чтобы в log-файле / trunk / projectX также содержались какие-либо изменения в любых определенных svn: externals.

Ответы [ 4 ]

3 голосов
/ 15 сентября 2008

Это невозможно с текущей версией Subversion, кроме явного вызова svn log для цели каталога externals

Вы можете попробовать отправить запрос функции на веб-сайте Apache Subversion

0 голосов
/ 24 января 2013

Я думаю, что после Subversion 1.7 (в которой была введена одна папка .svn в корне WC), она была более чистой: для внешних каталогов тип внешнего каталога внутри рабочей копии является а) независимым, б) вложенной рабочей копией отдельного хранилища.

>dir /B /S /AD
z:\subversion-troubleshoot-b\.svn
...
z:\subversion-troubleshoot-b\trunk
z:\subversion-troubleshoot-b\tags
z:\subversion-troubleshoot-b\trunk\lib
z:\subversion-troubleshoot-b\trunk\lib\.svn
...
z:\subversion-troubleshoot-b\tags\1.0.0
z:\subversion-troubleshoot-b\tags\1.0.1
z:\subversion-troubleshoot-b\tags\1.0.1\lib
z:\subversion-troubleshoot-b\tags\1.0.1\lib\.svn
...

и родительский WC не содержат никакой информации о вложенном WC (каталог WC, созданный из / в хранилище, обратите внимание. Присутствие SVR дважды только для магистрали)

>svn ls -R
readme.textile
tags/
tags/1.0.0/
tags/1.0.0/core_mod.txt
tags/1.0.1/
tags/1.0.1/core_mod.txt
trunk/
trunk/core_mod.txt

когда транк (и теги соответственно) имеют подкаталог lib как внешний

Repo-Browser with externals

Поддержка обработки внешних элементов добавлена ​​для обновления и фиксации, потому что эта поддержка производит независимых и не связанных последовательных команд - и поскольку внешние элементы без этой поддержки не имеют смысла, агрегированный лог svn должен каким-то образом объединяться (по неизвестным принципам, кстати)

0 голосов
/ 24 января 2013

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

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

Bye

0 голосов
/ 15 сентября 2008

При отображении журнала для локальной версионной папки будут отображаться изменения, относящиеся к этой конкретной папке. Внешними являются только ссылка на другую папку в хранилище. Единственное, что вы можете отслеживать о внешних ссылках из папки, которая зависит от этого внешнего проекта, это само определение ссылки . Это связано с тем, что ссылка является свойством subversion зависимой папки.

Представьте, что у вас есть следующая иерархия репо:

repo
   myfirstproject
      trunk
   mysecondproject
      trunk
   mycommonlib
      trunk

и эта папка mysecondproject\trunk имеет следующее свойство svn: external :

svn://mysrv/repo/mysharedlib@2451 sharedlib

Извлечение mysecondproject \ trunk внутри новой папки secondproject создаст что-то подобное в вашей файловой системе:

secondproject Folder (refers mysecondproject/trunk)
   sharedlib Folder (refers mycommonlib/trunk @ revision #2451)

При вызове команды «Показать журнал» Tortoise из папки secondproject будут отображаться только secondproject файлов и, в конечном итоге, изменения, произошедшие в свойстве svn: external папки.

Чтобы получить журнал изменений внешнего проекта, вам нужно вызвать «Показать журнал» из внутренней папки sharedlib , что имеет смысл.

...