SVN: Как мне поддерживать мой локальный файл config.blah?

На сервере SVN есть файл config.conf. У меня локальная версия называется так же (там же). Как я могу убедиться, что моя локальная конфигурация не перезаписывается и не регистрируется?

Пока я здесь, есть ли другой ответ для каталога?

Я использую Tortoise SVN, но ответы в командной строке - это круто.

Спасибо!

[Извините, если этот основной вопрос задавали раньше ... Я искал, но не нашел.]

Очень полезный вопрос. Ужасный ответ. Почти полностью отключает меня от SVN! Как они могли не допускать конфигурационных файлов ?? Шаблонный ответ неприемлем, поскольку файлы могут находиться на много уровней ниже во многих различных деревьях каталогов, и изменять их для каждого программиста нецелесообразно.

Bill K 18.11.2008 21:42

У меня проблема с asp.net и web.config. В этом случае перемещение файла невозможно, так как .NET требуется, чтобы он находился в корневом веб-каталоге. Очень надоедливый!

Adam Pope 11.12.2008 19:26
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
8
2
3 613
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

Вы можете добавить атрибут 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, а затем запустите приложение)
  • Подвинь это. Возможно, добавьте в свое приложение некоторую логику, которая проверяет config.conf в локальном пользовательском каталоге, а затем использует 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.

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

Спасибо всем за ответы.

  1. исключите его из репозитория с помощью svn: ignore (сначала вам нужно удалить его из репозитория)
  2. сохраните копию в config.conf.default со значениями-заполнителями. Вы можете сохранить копию по умолчанию в репозитории.
  3. используйте config.conf как обычно - Subversion его больше не увидит

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

Нравится:

/ 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, поэтому ваш ответ может сработать для нас.

Dan Rosenstark 24.10.2008 19:10

У TortoiseSVN есть хороший ответ на половину этой проблемы: игнорировать при фиксации

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

Ознакомьтесь с этим сообщением в блоге, чтобы узнать, как:

http://blog.baljeetsingh.net/2009/02/tips-tricks-svn-ignore-on-commit.html

Потрясающий. Я думаю, что черепаха, вероятно, единственная программа, которую мне сейчас не хватает, так как я использую OS X, но мы все равно переходим на GIT :)

Dan Rosenstark 28.08.2009 04:14

Приятно видеть, что для ответа используется ссылка на собственный блог. спасибо @Scrappydog

Baljeetsingh 13.12.2018 11:01

как указал Scrappydog

Вы можете использовать / создавать разные списки в диалоговом окне фиксации

он поддерживает список игнорировать при фиксации, таким образом файлы в этом списке не будут видны ..

вы можете обратиться к ссылка на этот блог за подробностями.

http://blog.baljeetsingh.net/2009/02/tips-tricks-svn-ignore-on-commit.html

Другие вопросы по теме