2010-10-07 3 views
8

Вот моя проблема. У меня есть определенные файлы из решения (скажем, Web.config), которые я изменил и никогда не захочу зарегистрироваться, поскольку изменения относятся только к моей машине. Есть ли способ сказать в TFS игнорировать изменения в определенном файле и удалить его из окна ожидающих изменений. Конечно, я могу пропустить этот файл в каждой регистрации, но всегда есть возможность забыть и зарегистрировать ошибку по ошибке. Например, в AnkhSVN есть аналогичный список игнорирования.Игнорировать определенный файл из ожидающих изменений

ответ

11

Некоторые части файлов {app,web}.config могут быть делегированы другим файлом. Примечательно <connectionStrings>.

В вашем app.config или web.config:

<connectionStrings configSource="LocalConnectionStrings.config" /> 

в LocalConnectionStrings.config есть (<connectionStrings> корневой элемент):

<connectionStrings> 
    <!-- For the application's operations. --> 
    <add name="Application" 
     connectionString="Data Source=server;Initial Catalog=database;Integrated Security=True;Network Library=dbmssocn" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

Таким образом, каждый разработчик имеет LocalConnectionStrings.config, который находится в проекте, но не в источник управления с их частными настройками, а {web,app}.config имеет общие настройки. К сожалению, это работает только с ограниченным набором системных элементов конфигурации.

+0

Это похоже на приемлемое обходное решение. Благодарю. – anthares

1

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

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

+0

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

2

Для нашей работы в VS 2005/2008 мы включили несколько проверок, и мы просто никогда не проверяем файл web.config.

Для того, чтобы попытаться сделать что-то фанки, чтобы не что-то проверить, мы просто не проверяем его. В нечетном случае, когда один из этих файлов проверен, ну, это быстро: «Эй, ребята, я испортил ».

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

http://arcware.net/2007/04/12/how-to-exclude-files-from-tfs-source-control/

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

+1

Как я уже сказал, «Эй, ребята, я прищурился» мне не подходит (если быть точным - я делаю это так прямо сейчас, но я ищу более удобный способ). Исключение файла из исходного элемента управления также не является вариантом. – anthares

+0

Ссылка умерла. Не в архиве. Ужасно [автор говорит] (http://arcware.net/reboot/), «Это может удивить некоторых людей, но весь мой предыдущий контент ушел. Все, что я написал раньше, все десятилетие 2004 - 2014 , больше не доступен. Нет сообщений, комментариев нет. * «Кто говорит, что общественный контент в Интернете не может умереть? ; ^) – ruffin

1

В какой версии студии вы используете?

Если вы находитесь в 2010 году, то вы можете использовать преобразования веб-конфигурации. Таким образом, вы можете иметь разные файлы web.config в зависимости от среды. Например, разработка, тестирование, производство.

Если вы в 2008 году, у нас обычно был основной файл web.config, указывающий на наш материал для разработки и файл web.production.config, указывающий на производство. Во время развертывания мы удаляем web.config и переименовываем web.production.config.

+0

Я использую 2010, но изменения зависят от конкретной машины, а не от конкретной среды. Например, для среды разработки dev web.config отличается для всех моих коллег. – anthares

+1

@anthares: Я предполагаю, что каждый из вас запускает собственный локальный сервер sql? Вы могли бы построить идею трансформации и просто добавить конфигурацию для каждого разработчика. Или просто работать с теми же настройками. Лично, столкнувшись с проблемами в обоих типах сред, я предпочитаю общий подход к SQL-серверу ... Кажется, это не проблема. – NotMe

4

Лучшая практика в отношении файлов конфигурации, TFS и различные машины для проявителя (кромка кромка) ...

Все ваши разработчики должны иметь ту же среду разработки. Это единственный способ управлять web.config файлы в TFS, и он имеет много дополнительных преимуществ:

  • NOMORE «но это работает на моем компьютере»

  • своего друга страшный «Я доном «Не понимаю, какие зависимости требуются, он больше не компилируется».

  • Вы не пожалеете знаменитого «Ах! Я забыл сказать вам, я изобрел MyWonderfullApplicationConfigSection, и вы должны определить его в своем web.config, но я не буду рассказывать вам, как это сделать."

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

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

+0

-1 Плохая идея. Что делать, если у вас есть многоуровневая архитектура, которая использует веб-конфигурацию для определения конечных точек wsdl? как насчет сообщений об ошибках? как насчет разработчиков не нравится компиляция пакета? Во многих ситуациях стандартизация веб-конфигурации dev невозможна. –

+1

Я сказал, что это не всегда легко реализовать. Однако следует отметить, что если у вас стандартизованная платформа dev, конечные точки wsdl больше не являются проблемой (они становятся стандартизованными). И если они не ... у вас будут проблемы. Я не вижу сообщений об ошибках на платформе разработчика. Включите их только при производстве. Если разные разработчики нуждаются в различной конфигурации компиляции, все в порядке: для этого существуют конфигурации компиляции. Остерегайтесь, однако, незаметных изменений зависимостей от других разработчиков. – Eilistraee

+0

Хотя это правда, мы можем спорить обо всех этих моментах, они не делают, могут ответить менее уместным ... Стандартизация платформы веб-разработки имеет много преимуществ. И это может пойти на использование обычного регулярно обновляемого VHD – Eilistraee

6

Один из способов может быть, чтобы удалить атрибут только для чтения на web.config в проводнике Windows затем отредактировать его в блокноте:..

  • Это не будет появляться в ожидании изменения
  • Это все еще в источнике управления

Гадкий но простое решение.

+0

Вы можете редактировать в VS без проверки, если вы выберите «Разрешить редактирование ...» в меню «Инструменты» | Варианты | Общий | Документы. – Richard

+0

+1 Я закончил это. Работает хорошо. –

+1

Обратите внимание, что этот трюк НЕ работает с «Локальными рабочими пространствами» в TFS 2012+. –

2

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

(я знаю, что это старый вопрос, но я уверен, что кто ищет способ, чтобы сделать это могли бы использовать этот ответ)