На сервере SVN есть файл config.conf. У меня локальная версия называется так же (там же). Как я могу убедиться, что моя локальная конфигурация не перезаписывается и не регистрируется?
Пока я здесь, есть ли другой ответ для каталога?
Я использую Tortoise SVN, но ответы в командной строке - это круто.
Спасибо!
[Извините, если этот основной вопрос задавали раньше ... Я искал, но не нашел.]
У меня проблема с asp.net и web.config. В этом случае перемещение файла невозможно, так как .NET требуется, чтобы он находился в корневом веб-каталоге. Очень надоедливый!





Вы можете добавить атрибут svn-ignore: в свою локальную папку, который исключает config.conf или даже * .conf
Но я считаю, что вам придется полностью исключить этот файл из SVN, т.е. если он уже был зарегистрирован в репо, вам нужно сначала удалить его из репозитория
Игнорирование файла должно помочь вам:
http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-ignore.html
SVN всегда будет думать, что этот файл является частью репозитория, если вы назовете его так же и поместите в тот же каталог. Ваши варианты
mv config.conf config.conf.theirs && mv config.conf.mine config.conf, а затем запустите приложение)Спасибо всем. Я думал, что Эоин злится, но на самом деле это правда. Вы не можете игнорировать файл, который находится в системе контроля версий.
Согласно документам Tortoise
Ignoring Versioned Items
Versioned files and folders can never be ignored - that's a feature of Subversion. If you versioned a file by mistake, read the section called “Ignore files which are already versioned” for instructions on how to “unversion” it.
И из документов SVN
I have a file in my project that every developer must change, but I don't want those local mods to ever be committed. How can I make 'svn commit' ignore the file?
The answer is: don't put that file under version control. Instead, put a template of the file under version control, something like "file.tmpl".
Then, after the initial 'svn checkout', have your users (or your build system) do a normal OS copy of the template to the proper filename, and have users customize the copy. The file is unversioned, so it will never be committed. And if you wish, you can add the file to its parent directory's svn:ignore property, so it doesn't show up as '?' in the 'svn status' command.
Это ужасно раздражает ... Думаю, мне просто нужно быть осторожным с этим файлом и сделать резервную копию моей собственной конфигурации (которую я могу игнорировать).
Спасибо всем за ответы.
Когда происходит подрывная работа с файлами конфигурации, я считаю очень полезным иметь для этого целый транк. Почему? В основном потому, что вы можете просто иметь две копии локального репозитория, одну для локального использования, а другую для удаленных изменений.
Нравится:
/ workdir / configuration [это ссылка на / workdir / conf_local]
/ workdir / conf_local [обновлять локальную конфигурацию, но не отменять мои настройки]
/ workdir / conf_remote [всегда обновляется удаленными данными, поэтому я могу зафиксировать изменения]
Я не знаю, какой у вас тип настройки, и применимо ли это к любому языку, который вы используете, но я так делаю с веб-сайтами и PHP.
Во-первых, вы создаете конфигурацию по умолчанию, которая, вероятно, имеет наивные значения, которые не будут работать для 90% настроек, но дает вам ссылку на то, какие значения существуют и что на самом деле можно настроить. Этот сценарий обычно называется «config.default.php» или что-то в этом роде. Внизу этого скрипта есть что-то вроде:
if (file_exists("config.php")) require "config.php";
Простая логика. Если для файла конфигурации есть переопределение пользователем, загрузите его и позвольте ему переопределить все, что ему нужно. Затем просто игнорируйте этот файл конфигурации пользователя с помощью методов, уже объясненных на всех машинах разработки и на любых производственных машинах, которые по какой-либо причине сохраняют svn checkout. Это очень гибкая настройка, и аналогичные процедуры можно настроить для большинства языков / сред.
Здорово. На самом деле это для разработчиков PHP, поэтому ваш ответ может сработать для нас.
У TortoiseSVN есть хороший ответ на половину этой проблемы: игнорировать при фиксации
Это предотвращает случайную фиксацию «только локальных» изменений, но не решает проблему случайного обновления локально измененного файла.
Ознакомьтесь с этим сообщением в блоге, чтобы узнать, как:
http://blog.baljeetsingh.net/2009/02/tips-tricks-svn-ignore-on-commit.html
Потрясающий. Я думаю, что черепаха, вероятно, единственная программа, которую мне сейчас не хватает, так как я использую OS X, но мы все равно переходим на GIT :)
Приятно видеть, что для ответа используется ссылка на собственный блог. спасибо @Scrappydog
как указал Scrappydog
Вы можете использовать / создавать разные списки в диалоговом окне фиксации
он поддерживает список игнорировать при фиксации, таким образом файлы в этом списке не будут видны ..
вы можете обратиться к ссылка на этот блог за подробностями.
http://blog.baljeetsingh.net/2009/02/tips-tricks-svn-ignore-on-commit.html
Очень полезный вопрос. Ужасный ответ. Почти полностью отключает меня от SVN! Как они могли не допускать конфигурационных файлов ?? Шаблонный ответ неприемлем, поскольку файлы могут находиться на много уровней ниже во многих различных деревьях каталогов, и изменять их для каждого программиста нецелесообразно.