Visual Studio TFS показує незмінені файли у списку очікуючих змін


94

Я бачу файл у вікні змін, що очікують. Я намагаюся порівняти його з останньою версією, і я отримую повідомлення "Файли однакові" Якщо файли однакові, чому цей файл відображається у вікні змін, що очікують? Що змінилось у цьому файлі? Чи можу я налаштувати TFS не перераховувати файли, які є однаковими?


Поступово ваш антивірус оновлює останню модифіковану дату файлів? Або ви працюєте на зашифрованому ноутбуці?
DOK

ScottGu роз'яснює, як антивірус може змінити ці дати, щоб у цій статті (пошук "вірусу") weblogs.asp.net/scottgu/archive/2006/09/22/…
DOK

58
Це має бути однією з НАЙКРИТИХ "особливостей" TFS
Бред Томас

У мене теж є ця проблема - TF працює, але TFPT не працює - я думаю, це тому, що я використовую "TFPT - Team Foundation Power Tools 2012" з робочою областю Visual Studio 2010 ...: - /
BrainSlugs83

Схоже , все , що я повинен був зробити підключення до однієї і тієї ж колекції в Visual Studio 2012. Див цей пост для більш докладної інформації: stackoverflow.com/questions/1758606 / ...
BrainSlugs83

Відповіді:


49

Це нормально, якщо файл автоматично перевіряється через зміну, і якщо в кінцевому підсумку вміст файлу повертається до початкового стану. У цей момент ви побачите повідомлення про однаковий вміст при порівнянні.

Цей запис у блозі описує не дуже інтуїтивний спосіб боротьби з цим; а в коментарях є ще краща пропозиція щодо вирішення цього питання через командний рядок через електроінструменти TFS.

TFS очікує на зміни, ігноруючи однакові файли ...


12
Я настійно рекомендую використовувати tfpt uuелектроінструмент, а не хиткі рішення "Не всім". Тільки додані та змінені редагування отримують це підказку. Наприклад: перейменування (які мають лише відкладене перейменування, а не перейменування + редагування) буде скасовано користувальницьким інтерфейсом без запиту.
Edward Thomson

8
У випадку, якщо оригінальна публікація блогу коли-небудь відходить, команда є tfpt uu /noget /r *, яку необхідно виконати з кореня гілки. Говорячи це, хоча воно правильно сприймає зайві зміни, а потім претендує на їх скасування, я все ще бачу їх перевіреними в VS та діалоговому вікні Check In, тому для мене це здається порушеним: /
Майк Чемберлен

2
Інша можливість цього трапляється, якщо ви перемкнете біт файлу "лише для читання", фактично не змінюючи його вміст. TFS може часом дратувати.
арвіман

1
Для довідки, рішення "Не всім" скопіюється сюди за посиланням: "Інший варіант -" Скасувати замовлення "всіх змін та натиснути" Ні для всіх ", коли буде запропоновано підтвердити скасування оформлення замовлення. Таким чином Visual Studio буде "Скасувати перевірку" всіх файлів, які не змінені, і всі змінені файли залишаться перевіреними. Я завжди використовую цей метод. "
PJSimon

Цей трюк "Не всім" приємний, але він має кілька недоліків. Наприклад - я використовую свій інструмент для створення класів DB EntityFramework. Я генерую їх у зовнішній каталог, а потім просто перетягую їх у своє рішення. Іноді, коли змін немає, він все одно відображає зміни. Цей трюк "Ні для всіх" видаляє їх. Але якщо додаються нові класи, яких раніше не було, це видаляє їх з керування джерелами - я повинен додати їх назад вручну.
Побажання

17

Нещодавно я лише оновив VS2010 до VS 2013, і це питання ще гірше. При використанні порівняння файли, які однакові, взагалі не спливають. Я ненавиджу це, тому що ви не могли зрозуміти, які файли справді змінені, поки ви ретельно не перевірите порівняння файлів.

Нарешті я з’ясував рішення для цього:
додайте «Скасувати незмінні каси» у зовнішніх інструментах:

  • Команда: tfpt.exe
  • Аргументи: uu . /noget /recursive
  • Початковий каталог: $(SolutionDir)

Після запуску цієї команди TFS автоматично скасує всі зайві зміни у файлах.
Але ці файли все ще зберігають статус перевірки, насправді вони вже скасовані і такі ж, як і в останній версії. Я думаю, що це помилка в TFS. Вам просто потрібно натиснути кнопку «Оновити» на панелі інструментів під розвідником рішень, ці файли будуть оновлені та покажуть правильний статус!


2
Я запустив "tfpt uu. / Noget / recursive", і він стверджує, що в робочій області немає очікуваних змін. VS2015, TFPT 2015. Усі мої зміни є порожніми [злиттями] змін.
швидке множення

Я пробував це без успіху. Видалення точки аргументу, здається, змусить його працювати належним чином: uu / noget / recursive
dperez

10

Щоб зробити пояснення вище зрозумілим:

  1. Встановіть електроінструменти TFS за допомогою диспетчера пакетів NuGet у VS.
  2. Відкрийте командний рядок Visual Studio (також називається командний рядок розробника для VS 2013/2015) у Windows Start.
  3. Перейдіть до кореневого місця локальної робочої області за допомогою командного рядка.
  4. Виконай цю команду: tfpt uu. / рекурсивний / незабутній
  5. Виберіть, щоб відкинути зайві зміни, якщо буде запропоновано.

Працювали для мене.

Далі:

Іноді я виявив, що мені потрібно запустити команду у вікні відкриття командного рядка Developer (і отримати помилку робочого простору, перш ніж перейти до папки робочої області та виконати там. Якщо я перейду до потрібної папки, команда не знайдена. (Я не заперечував би проти цього питання.)


Дякую мені - з листопада-30-го 2015 року. Я постійно отримую одне і те ж питання знову і знову, і ваша відповідь була ідеальною. Я намагався проголосувати за вас, але отримав якусь помилку "простору-часу". Щось стосується 30 листопада 1955 р. І "потрібні 1,21 гігавата не знайдено".
Філ

На жаль, не працює для мене. Unable to determine the workspace. Вже спробували оновити кеш робочої області, успіху не було. Через 2 години я просто кину і перевіряю, чи не змінені файли, щоб позбутися від них.
C4d

@ C4u Можливо, я почав відчувати це сам, з моменту переходу на VS 2015. Однак проблема з файлами, що вийшли із перевірки, пішла. Я побачу, що можу дізнатися.
Філ

1
Я не зміг знайти PowerTools за допомогою NuGet, але зміг знайти та встановити його за допомогою google search "Електроінструменти Microsoft Visual Studio Team Foundation Server 2013"
Колін

@Versatile Переглядаючи Visual Studio 2017, вам потрібно буде перейти до "Інструменти"> "Розширення та оновлення ..." Я не пам'ятаю структуру меню у 2013/15. Можливо, моя відповідь вимагає виправлення. Якщо у вас є VS 2013/15 і можете перевірити структуру меню, будь ласка, не соромтесь редагувати мою відповідь. :)
Філ-

1

Я вирішив це, натиснувши Stage Allкнопку в змінах, а потім відмінивши їх Unstage All.

Це вирішило незмінний файл, який я мав у своєму Changesрозділі. Приємно і просто.


0

Visual Studio 2012 представив нову концепцію під назвою Local Workspace .

Коли місце розташування робочої області налаштовано як локальне, воно розмістить локальну копію оригінального файлу (подібно до SVN / CVS).

Потім він автоматично приховає незмінені файли від змін, що очікують.

Використовуйте Провідник управління джерелами TFS, щоб "Редагувати ..." робочу область TFS та змінити "Додатково ..." - встановивши Місце розташування з сервера на Локальне.


Моя робоча область локальна, але незмінені файли все ще з'являються в очікуванні змін ... Це автоматично не скасовує реєстрацію виїзду ...
Ozkan,

0

Для мене, узгодження робочої області вирішує ці недійсні очікувані зміни:

  1. Провідник команди -> Будує
  2. Клацніть правою кнопкою миші на останній збірці із вами змін -> "Примирити робочу область ..."
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.