Проверить копию файла только для чтения из Subversion? - PullRequest
11 голосов
/ 24 августа 2009

Иногда я хочу получить файл из репозитория для использования в каком-либо проекте, который не находится под контролем исходного кода. Допустим, это просто файл, полный полезных служебных функций. Я знаю, что могу просто svn export , но я бы хотел иметь возможность svn update время от времени получать последнюю версию файла.

Важно то, что я не хочу вносить какие-либо изменения в файл из нового проекта; Я просто хочу иметь возможность обновлять файл.

Есть ли способ извлечь файл только для чтения?

Ответы [ 7 ]

2 голосов
/ 17 ноября 2009

Один из способов сделать это, когда вы извлекаете файл, добавить к нему свойство (локально!), Например readonly или что-то подобное. Вы даже можете создать сценарий проверки только для чтения, который сделает это за вас за один шаг. Это само по себе не делает файл доступным только для чтения.

Что вы можете сделать, так это написать хук предварительной фиксации, который делает svnlook propget в потенциальной транзакции, и, если определено readonly, запретить фиксацию.

Когда вы делаете обычный svn update, он должен работать без лишней работы.

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

2 голосов
/ 24 августа 2009

Это похоже на эмуляцию проверки CVS только для чтения , и я не думаю, что она была реализована в Subversion .

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

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

1 голос
/ 16 ноября 2009

Возможно, у вас есть какая-то форма автоматизации сборки (make, ant и т. Д.) Для компиляции. Почему бы не добавить шаг 'update' в ваш файл make, который выглядит примерно так:

update:
        svn update
        svn export <<export parameters go here>>

Тогда всякий раз, когда кто-то печатает svn update, он может печатать make update и иметь тот же эффект.

0 голосов
/ 10 апреля 2015

Основная проблема заключается в том, что вы хотите гарантировать, что вы не сможете зафиксировать какие-либо внесенные вами изменения, поэтому извлекаемые файлы должны быть доступны для чтения / записи, но вы не хотите разрешать проверку файлов изменений. и иногда вы хотите иметь возможность svn up эти файлы тоже.

Для меня решение было сделать .svn недоступным для записи

Под управлением Linux / Mac вы можете запустить chmod -R -w .svn. Если вы попытаетесь что-то проверить, вы получите ошибку только для чтения. Вы по-прежнему можете различать, обвинять и т. Д. Недостатком является то, что это не позволит вам svn up -ing, пока вы не сделаете каталог снова читаемым. Тем не менее, вы можете просто включить / выключить запись, когда вам нужно это сделать (chmod -R +w .svn).

К сожалению, я не уверен, каким будет эквивалент Windows.

0 голосов
/ 26 февраля 2014

Как вам нравится идея устанавливать атрибуты только для чтения для извлеченных файлов? Мне интересно, можно ли автоматизировать это действие в каком-нибудь обработчике / перехвате после проверки?

Это не помешает вам внести изменения.

0 голосов
/ 20 марта 2012

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

Read-Only

0 голосов
/ 01 июля 2011

Почему бы не создать пользователя Subversion, который имеет доступ только для чтения к хранилищу, а затем использовать этого пользователя для выполнения проверки / обновления.

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