Как мы проверяем, зафиксирован ли файл в репозитории SVN? - PullRequest
2 голосов
/ 17 августа 2010

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

редактировать

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

Ответы [ 2 ]

2 голосов
/ 17 августа 2010

Вы можете заставить svn работать за вас, запустив svn status /path/to/my/file из оболочки по пути к файлу. Если он не отмечен, вы получите ? /path/to/my/file назад (начинается с вопросительного знака). Если он зарегистрирован и не изменен, вы не получите ответа от статуса svn, в противном случае строка начнется с символа, описывающего статус файла (например, A, M, D).

Имейте в виду, что если файл не находится в хранилище svn, состояние svn выдаст предупреждение svn: warning: '/path/to/my/file' is not a working copy.

[править] Увидев ваше разъяснение, вам необходимо проверить все флаги состояния (добавлены, изменены, удалены и т. Д.) И напомнить пользователю о необходимости коммитить, где это необходимо. svn help status содержит (полный) полный список.

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

0 голосов
/ 17 августа 2010

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

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