Как отменить извлечение файлов

Обновлено: 06.07.2024

Мы используем пакетный файл для генерации кода, и он автоматически проверяет сгенерированные файлы с Team Foundation Server (TFS), чтобы он мог восстановить их. Большинство этих файлов не изменены, но генератор не знает об этом заранее.

Команда "tfs undo" отменяет извлечение, но выдает запрос, если некоторые из них были изменены (что мы не хотим делать). Мы также не хотим сразу проверять сгенерированные файлы.

Есть ли команда (или серия команд) для отмены извлечения всех неизмененных файлов без запроса пользователя?

Обратите внимание, что отмена всех изменений вручную с ожиданием выбора «Нет всем» при запросе об измененных файлах не будет работать корректно, так как отменит ADD изменения без запроса (см . Ответ Рэя ).

Ознакомьтесь с командой «Отменить без изменений» в Team Foundation Server Power Tools Август 2011 г.

Спасибо Мэтту Флоренсу за обновление ссылки.

Это должно быть отредактировано / объединено, чтобы содержать информацию об использовании как часть содержания ответа. хм, кое-что, что почти каждый делает несколько раз в день: «Давайте поместим его в отдельный инсталлятор под названием Power Tools» . @ Майк Чалий, ты бы мог подумать. Я сейчас пробую TFS, искал, как это сделать, и оказался здесь. Это не работает, если ваши изменения слияния. Кажется, что tfpt uu всегда рассматривает слияние как реальное изменение, даже если нет изменений файла, и нет возможности изменить это поведение. Это нормально, как поведение по умолчанию, но иногда это не то, что вы хотите.

Установите Team Foundation Server Power Tools и запустите следующее из командной строки, используя tfpt.exe в корне каталога рабочей области вашего проекта:

c:\myProject> tfpt uu . /noget /recursive

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

Это должен быть принятый ответ, в нем есть все соответствующие детали (что подтверждается более высоким баллом). @ user20358 либо cd туда, где находится каталог вашего рабочего пространства (например, мой c:\myProject ), либо явным образом включите его после uu (заменив период . на него) Имеет ли это переключатель силы, например / Y или / force? Меня всегда спрашивают, действительно ли вы хотите отменить это, и я бы хотел, чтобы это было автоматизировано. Поместите / Y там, но он говорит мне, что для параметра Y требуется значение.

Спасибо, @mike & @ray,

Я хочу сделать это проще.

В VS в меню «Сервис» нажмите «Внешние инструменты».

Внешние инструменты

Аргументы: уу. / noget / recursive

Начальный каталог: [вы можете выбрать из кнопки со стрелкой].

Отменить без изменений в решении

Отменить без изменений в проекте

Две новые команды добавлены в меню Инструменты.

Используйте их при необходимости.

Очень круто. Вы можете пойти еще дальше и добавить ярлык. Обратите внимание, как далеко вниз добавлена ​​ваша команда (например, она может быть четвертой). Затем выберите Инструменты -> Параметры -> Среда -> Клавиатура ->, введите текстовое поле «Показать команды, содержащее» «Tools.External» и назначьте ярлык. Например, я выбрал Tools.ExternalCommand4, так как моя недавно добавленная команда отмены была четвертой. Затем я назначил сочетания клавиш Ctrl + Alt + U, Ctrl + Alt + U Можем ли мы иметь обновленную версию этого? Если найден tf.exe, но что такое команда uu? это говорит мне Нераспознанная команда: uu. Спасибо за помощь @Shay: работает на VS2015 с последними установленными электроинструментами TFS.
  1. Щелкните правой кнопкой мыши по вашему проекту
  2. Выберите отменить оформление заказа, затем просто нажмите "ОК" или еще какое-либо подтверждение .
  3. Затем, при отмене извлечения, для каждого файла, имеющего РЕАЛЬНЫЕ изменения в нем, появится запрос на подтверждение извлечения для этого файла . просто нажмите «Нет всем»

Visual Studio будет знать, есть ли у извлеченного файла изменения или их нет.

Be aware that this method also removes added files that are not yet checked in from TFS. . да, это довольно немедленный дисквалификатор. Это работает для слияния моих необоснованных веток. Спасибо. Обычно в этом случае VS отмечает все файлы в решении как измененные. это ад, когда Nuget делает заказ для 10000 файлов, которые не требуется обновлять.

Обновлен этот вопрос с ответом при работе только с TFS2017 и VS2017 / VS2019 .

Для TFS 2017 не существует мощных инструментов, и старые не могут хорошо работать вместе с ним, но, очевидно, большая часть функциональности перенесена в сам VS2017 или плагины (см. Ниже).

Visual Studio 2017/2019 Расширение

Некоторые действия, такие как отмена неизмененных файлов, перемещены в

Расположение кнопки «Отменить без изменений»:

отменить неизменное расположение кнопки

Вы должны открыть «Source Control Explorer» (и оставить его открытым), чтобы «Undo Unchanged» отображался в меню «Action» в представлении «Pending Changes». сообщили здесь .

Расширение интеграции оболочки Windows

Кроме того, вы по-прежнему можете настроить интеграцию оболочки Windows с помощью отдельного установщика, который больше не связан с TFS Power Tools.

Интеграция с оболочкой Windows не работает точно так же, как раньше с powertools, но самые важные действия сработали для меня.

Я заметил в вопросе, что они хотят написать это, потому что у меня нет решения, я боюсь Я не могу найти опцию «Отменить без изменений» в VS2017 после установки связанного расширения. Я что-то пропустил ? Я не очень этим пользовался. Когда я использовал его, чтобы протестировать его для своего клиента, мне пришлось немного щелкнуть в Team Explorer и убедиться, что изменения были отменены. Возможно, эта опция появляется только в том случае, если у вас есть только ожидающие изменения, поставленные в очередь для коммита. (или только одна ветка меняется) . @ Erzékiel Опция появляется только тогда, когда Solution Explorer открыт и готов. Это расширение работает иногда , и его присутствие будет связано , имеющий TFS Source Control Explorer , открытым и не обозревателе решений (как некоторые ошибочно указывал) - не перепутать два разных окна управления. Тем не мение; когда я говорю иногда, это потому что он приходит и уходит. Прямо сейчас у меня нет этого, я сделал месяц назад. Это немного глючит, и я боюсь, что другие расширения - виновник, такой как Решарпер и тому подобное.

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

TFS делает это путем сравнения MD5-хэшей содержимого файлов до и после регистрации.

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

Если вашему процессу потенциально может потребоваться удаление файлов, лучше всего посмотреть на команду Team Foundation Power Tools ( tfpt ) и использовать онлайн-команду tfpt, которая будет проверять только файлы, которые были изменены, и будет достаточно умной, чтобы Pend удаляет для любых файлов, которые больше не нужны или изменили имя и Pend добавляет.

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

Помните, что отмена TFS не вернет значение «Дата изменения» файловой системы. Это очень неприятно, особенно если вы используете такие инструменты, как robocopy, для синхронизации удаленных компьютеров. Даже после отмены извлечения, если вы сохранили файл и обновили значение «Дата изменения», это обновленное значение будет сохраняться даже после отмены извлечения.

Или используйте robocopy или VCS, использование смеси всегда будет давать несоответствия. Намного лучше было бы заполнить каждую машину непосредственно из VCS.
  • / changeset Сравнить рабочее пространство с состояниями элементов в версии набора изменений, указанной вместо последней версии.
  • filespec . Проверять только указанные спецификации файлов на предмет избыточных изменений
  • / recursive Проверить указанные спецификации файлов с полной рекурсией
  • / noget Не запускать get перед проверкой

Теперь позвольте мне разбить команду, которая рекомендуется в других ответах.

  • tfpt uu указывает, что мы хотим использовать команду «Отменить без изменений».
  • . указывает (я предполагаю), что текущий рабочий каталог должен использоваться как спецификация файла.
  • /noget гарантирует, что 'get последней версии' не вызывается до удаления неизмененных файлов.
  • /recursive гарантирует, что будет учитываться не только спецификация файла, но и все рекурсивные дочерние папки и файлы. Кажется, это зависит от спецификаций файлов - если ничего не указано, обрабатывается все рабочее пространство.

Так что здесь есть пара моментов, которые нужно отметить относительно команды сверху .

  • Это зависит от рабочего каталога.
  • Он не обрабатывает все рабочее пространство.

Я обнаружил, что следующая команда работает лучше всего для меня - она ​​будет обрабатывать все рабочее пространство.

Обратите внимание, что он все еще зависит от рабочего каталога в том, что tfpt использует его, чтобы определить, какое рабочее пространство должно быть обработано. Но пока вы указываете путь к файлу или папке в рабочей области, вы можете идти.

Я вижу подход Рэй ЛайонФанга выше. Не могу комментировать, так как у меня нет представителя. Хотя мне нравится этот подход, так как в Инструменты и т. Д. Не требуется никаких изменений .

. есть проблема с этим подходом в том, что при нажатии "No To All" сохраняются несколько файлов, которые не были изменены. Кажется, что-то происходит, как отмена неизмененных файлов до тех пор, пока не попадет первый файл, который действительно был изменен, а затем проигнорирует оставшиеся неизмененные файлы, если это имеет смысл. Я видел этот эффект только время от времени.

Потенциальный обходной путь - следовать вышеуказанному процессу, но вместо нажатия «Нет для всех» нажмите «Нет» для каждого файла. Поскольку это может занять некоторое время в зависимости от количества файлов, с которыми вы работаете, обычно я удерживаю нажатой клавишу «ALT + N», и она просто ускоряет все файлы, удаляя ВСЕ неизмененные файлы.

Мы используем пакетный файл для генерации кода, и он автоматически проверяет сгенерированные файлы с Team Foundation Server (TFS), чтобы он мог их восстановить. Большинство этих файлов не изменяются, но генератор не знает об этом заранее.

Команда "tfs undo" отменяет извлечение, но выдает запрос, если некоторые из них были изменены (что мы не хотим делать). Мы также не хотим сразу проверять сгенерированные файлы.

Есть ли команда (или серия команд), чтобы отменить извлечение всех неизмененных файлов без запроса пользователя?

Посмотрите на команду Отменить без изменений в Team Foundation Server Power Tools Август 2011 г.

Спасибо Мэтту Флоренсу за обновление ссылки.

Установите Team Foundation Server Power Tools и выполните следующую команду из командной строки, используя tfpt.exe в корне каталога рабочей области вашего проекта:

c:\myProject> tfpt uu . /noget /recursive

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

Спасибо, @mike & @ray,

Я хочу сделать это проще.

В VS в меню "Сервис" нажмите "Внешние инструменты".

External Tools

Начальный каталог: [вы можете выбрать из кнопки со стрелкой].

Undo unchanged in solution

Undo unchanged in project

В меню "Инструменты" добавлены две новые команды.

Используйте их при необходимости.

  1. Щелкните правой кнопкой мыши на вашем проекте
  2. Выберите отменить оформление заказа, затем просто нажмите "ОК" или еще какое-либо подтверждение .
  3. Затем, при отмене извлечения, для каждого файла, имеющего РЕАЛЬНЫЕ изменения в нем, Приглашение попросит вас подтвердить извлечение для этого файла . просто нажмите "Нет всем"

Visual Studio будет знать, есть ли у извлеченного файла изменения или их нет.

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

TFS делает это путем сравнения MD5-хэшей содержимого файлов до и после регистрации.

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

Если вашему процессу потенциально может потребоваться удаление файлов, лучше всего посмотреть на команду Team Foundation Power Tools ( tfpt ) и использовать онлайн-команду tfpt, которая будет только Изучите файлы, которые были изменены, и будут достаточно умны, чтобы ожидать удаления для файлов, которые больше не нужны или изменили имя и ожидающие добавления.

Обновлен этот вопрос с ответом при работе только с TFS2017 и VS2017 .

Для TFS 2017 не существует мощных инструментов, и старые не могут хорошо работать вместе с ним, но, по-видимому, большая часть функциональности перенесена в сам VS2017 или плагины (см. Ниже).

Visual Studio 2017 Расширение

Некоторые действия, такие как отмена неизмененных файлов, были перенесены в расширение для VS2017

Расположение кнопки "Отменить без изменений":

undo unchanged button location

Известная ошибка

Вы должны открыть "Source Control Explorer" (и оставить его открытым), чтобы "Undo Unchanged" отображалось в меню "Action" в представлении "Pending Changes". сообщается здесь .

Расширение интеграции оболочки Windows

Кроме того, вы все равно можете настроить интеграцию с Windows Shell через отдельный установщик , который больше не связан с TFS Power Tools.

Интеграция с Windows Shell не работает точно так же, как раньше Powertools, но самые важные действия сработали для меня.

Помните, что отмена TFS не вернет значение "Дата изменения" в файловой системе. Это очень неприятно, особенно если вы используете такие инструменты, как robocopy, для синхронизации удаленных компьютеров. Даже после отмены извлечения, если вы сохранили файл, обновив, таким образом, значение "Дата изменения", это обновленное значение будет сохраняться даже после отмены извлечения.

  • / changeset Сравнить рабочую область с состояниями элементов в версии набора изменений, указанной вместо последней версии
  • filespec . Проверять только перечисленные спецификации файлов на предмет избыточных изменений
  • / recursive Проверить указанные спецификации файлов с полной рекурсией
  • / noget Не запускать get перед проверкой

Теперь позвольте мне разбить команду, которая рекомендуется в других ответах.

  • tfpt uu указывает, что мы хотим использовать команду "Отменить без изменений".
  • . указывает (я полагаю), что текущий рабочий каталог должен использоваться как спецификация файла.
  • /noget гарантирует, что 'get последней версии' не вызывается до удаления неизмененных файлов.
  • /recursive гарантирует, что будет учитываться не только спецификация файла, но и все рекурсивные дочерние папки и файлы. Кажется, это зависит от спецификаций файлов - если ничего не указано, обрабатывается все рабочее пространство.

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

  • Это зависит от рабочего каталога.
  • Он не обрабатывает все рабочее пространство.

Я обнаружил, что следующая команда работает лучше всего для меня - она ​​будет обрабатывать все рабочее пространство.

Обратите внимание, что он все еще зависит от рабочего каталога в том, что tfpt использует его, чтобы определить, какое рабочее пространство должно быть обработано. Но пока вы указываете путь к файлу или папке в рабочей области, вы можете идти.

Я вижу подход Рэй ЛайонФанга выше. Не могу комментировать, так как у меня нет представителя. Хотя мне нравится этот подход, так как в Инструменты и т.д. Не требуется никаких изменений .

. есть проблема с этим подходом в том, что при нажатии "No To All" сохраняются несколько файлов, которые не были изменены. Кажется, что-то происходит, как отмена неизмененных файлов до тех пор, пока не попадет первый файл, который на самом деле был изменен, а затем проигнорирует оставшиеся неизмененные файлы, если это имеет смысл. Я видел этот эффект только время от времени.

Потенциальный обходной путь - следовать вышеуказанному процессу, но вместо нажатия "Нет для всех" нажмите "Нет" для каждого файла. Поскольку это может занять некоторое время, в зависимости от количества файлов, с которыми вы работаете, обычно я удерживаю "ALT + N", и он просто ускоряет все файлы, удаляя ВСЕ неизмененные файлы.

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

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

Примечание: При извлечении файла c ним ничего не произойдет. Файл будет продолжать храниться в библиотеке. На него просто ставится пометка о том, что вам предоставлены единоличные права на редактирование до тех пор, пока вы не вернете его обратно. Для редактирования вам необходимо скачать документ или редактировать его в Интернете. Способ редактирования или обновления файла зависит от типа файла. Если это документ Word, вы можете использовать приложение Word в Microsoft 365 или классическое приложение Word. При работе с форматом, отличном от формата Microsoft 365, загрузите файл и используйте редактор, который вы обычно используете для этого формата файла.

Извлечение файла из библиотеки документов

Вы можете одновременно и получить один или несколько файлов.

Откройте библиотеку с файлом, который вы хотите и получить, выберите файл, щелкните многолипку(. ) на панели инструментов, а затем нажмите кнопку Проверить.

Вы также можете щелкнуть файл правой кнопкой мыши, нажать кнопку "Дополнительные" или "Еще" инажать кнопку "Ид.".

При извлечении файла отображается примечание. Если вы щелкнете значок, то увидите ход выполнения извлечения.

После извлечения файла на значке документа появляется стрелка на зеленом фоне.

Возврат файла в библиотеку документов

Примечание: Вы также можете щелкнуть файл правой кнопкой мыши, нажать кнопку "Дополнительные" или "Еще" инажать кнопку "Проверить".

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

Когда закончите, нажмите кнопку Вернуть.

Перед проверкой убедитесь, что вы сохранили изменения в документе. Поскольку SharePoint в Microsoft 365 документ остается на месте и никто другой не может его редактировать, если вы не хотите вносить изменения, отменить его.

Чтобы вернуть или вернуть несколько файлов другого человека, нажмите кнопку Вернуться к классической SharePoint и выполните действия, которые можно найти в этой библиотеке.

Чтобы выйти из классического интерфейса SharePoint, закройте все окна в браузере, а затем снова войдите в Microsoft 365.

Отмена извлечения из библиотеки документов

Откройте библиотеку и выберите файл, который вы хотите отменить.

На панели инструментов щелкните много ellipsis(. ) и выберите отменить ид.

Примечание: Вы также можете щелкнуть файл правой кнопкой мыши, нажать кнопку "Дополнительные" или "Еще" инажать кнопку Отменить ид.

При отмене извлечения появляется окно с вопросом, действительно ли вы хотите это сделать. Чтобы отменить извлечение, нажмите кнопку Отменить извлечение.

Диалоговое окно подтверждения отмены извлечения с выделенной кнопкой "Отменить"

Чтобы вернуть или вернуть несколько файлов другого человека, нажмите кнопку Вернуться к классической SharePoint и выполните действия, которые можно найти в этой библиотеке.

Чтобы выйти из классического интерфейса SharePoint, закройте все окна в браузере, а затем снова войдите в Microsoft 365.

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

Наведите курсор на значок с зеленой стрелкой и посмотрите, кто имеет файл, который был икончен.

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

Чтобы заменить существующий документ на новый, выполните следующие действия:

В библиотеке документов извлеките файл, который необходимо заменить.

Привязыв новый файл с тем же именем, что и у того, который вы хотите заменить, перетащите его в библиотеку или воспользуйтесь кнопкой Upload файла. Кроме того, можно скачать файл и переописать его. Дополнительные сведения о добавлении см. в Upload файлов и папок в библиотеку документов.

В диалоговом окне Ход выполнения нажмите кнопку Заменить.

Верните файл в библиотеку, чтобы заменить старый файл на новый. Если вы передумаете, выполните инструкции по отмене возврата файла, приведенные выше.

Если у вас включено ведение версий, при SharePoint создается новая копия файла с сохранением более ранних версий. Дополнительные сведения об управлении версиями см. в статье Принципы управления версиями в списках и библиотеках.

Оставьте комментарий

Обновлено 3 октября 2018 г.

Была ли эта статья полезной? Если да, укажите это внизу страницы. В противном случае поделитесь своим мнением — что нужно добавить или сделать понятнее. Укажите свои версию SharePoint, ОС и браузер. С учетом вашего отзыва мы перепроверим сведения и, если нужно, допишем и обновим эту статью.

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

Команда «tfs undo» отменяет проверку, но запрашивает, были ли какие-то из них изменены (чего мы не хотим делать). Мы также не хотим сразу же проверять сгенерированные файлы.

Есть ли команда (или серия команд) для отмены проверки всех немодифицированных файлов без запроса пользователя?

Спасибо Мэтту Флоренс за обновление ссылки.

Его следует отредактировать / объединить, чтобы он содержал информацию об использовании как часть содержимого ответа. Хм, кое-что, что почти каждый делает несколько раз в день: «Давайте поместим это в отдельный установщик под названием Power Tools» . вздох Чалый ты думаешь. Я сейчас пробую TFS, искал, как это сделать, и оказался здесь. Это не сработает, если ваши изменения объединены. Кажется, что tfpt uu всегда считает слияние реальным изменением, даже если нет изменения файла, и нет возможности изменить это поведение. Это нормально по умолчанию, но иногда это не то, что вам нужно.

Установите Team Foundation Server Power Tools и запустите следующее из командной строки, используя tfpt.exe в корне каталога рабочей области вашего проекта:

c:\myProject> tfpt uu . /noget /recursive

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

Это должен быть принятый ответ, в нем есть все необходимые детали (что подтверждается более высокой оценкой). Прохладный. Кроме того, почему бы не добавить это как постоянный «Внешний инструмент» в Visual Studio. Возьмем это в качестве примера: blog.kurtschindler. net / post /… Команда: [ваш установочный каталог] \ TFPT.EXE Аргументы: uu. / noget / recursive Начальный каталог: $ (SolutionDir) Либо cd туда, где находится каталог вашей рабочей области (например, мой был c:\myProject ), либо явно включить его после uu (заменив им точку . ) Есть ли здесь переключатель силы, например / Y или / force? Меня всегда спрашивают, действительно ли я хочу отменить это, и я бы хотел, чтобы это было автоматизировано. Поместите / Y туда, но он говорит мне, что для варианта Y требуется значение.

Спасибо @mike и @ray,

Я хочу облегчить

В VS в меню «Инструменты» нажмите «Внешние инструменты».

External Tools

Аргументы: уу. / noget / рекурсивный

Исходный каталог: [можно выбрать с помощью кнопки со стрелкой].

Undo unchanged in solution

Undo unchanged in project

В меню «Инструменты» добавлены две новые команды.

Используйте их при необходимости.

Очень круто. Вы также можете пойти еще дальше и добавить ярлык. Обратите внимание, как далеко находится ваша добавленная команда (например, она может быть четвертой). Затем перейдите в Инструменты -> Параметры -> Среда -> Клавиатура -> и введите в текстовое поле «Показать команды, содержащие» «Tools.External» и назначьте ярлык. Например, я выбрал Tools.ExternalCommand4, так как моя недавно добавленная команда отмены была четвертой. Затем я назначил сочетания клавиш Ctrl + Alt + U, Ctrl + Alt + U Не могли бы мы получить обновленную версию этого? Если обнаружен tf.exe, но что такое команда uu? он сообщает мне Нераспознанная команда: uu. Спасибо за помощь : У меня работает в VS2015 с установленными последними электроинструментами TFS.
  1. Щелкните правой кнопкой мыши свой проект
  2. Выберите «Отменить оформление заказа», затем просто нажмите «ОК» или еще какое-то подтверждение .
  3. Затем при отмене извлечения для каждого файла, в котором есть РЕАЛЬНЫЕ изменения, появится запрос на подтверждение извлечения этого файла . просто нажмите «Нет для всех»

Visual Studio узнает, есть ли в извлеченном файле изменения или нет.

Be aware that this method also removes added files that are not yet checked in from TFS. . да, это сразу дисквалифицирует. Это работает для слияния моих Baseless веток. Спасибо. Обычно в этом случае VS помечает все файлы в решении как измененные. Это ад, когда nuget проверяет 10000 файлов, которые не требуется обновлять.

Обновлен этот вопрос с ответом при работе только с TFS2017 и VS2017 / VS2019 .

Электроинструментов для TFS 2017 не существует, и старые не могут работать вместе с ним, но, по-видимому, большая часть функциональности была перенесена в сам VS2017 или плагины (см. Ниже).

Расширение Visual Studio 2017/2019

Некоторые действия, такие как отмена неизмененных файлов, перемещены в

Расположение кнопки «Отменить без изменений»:

undo unchanged button location

Вы должны открыть «Обозреватель управления исходным кодом» (и оставить его открытым), чтобы «Отменить без изменений» отображалось в меню «Действие» в представлении «Ожидающие изменения». здесь.

Расширение интеграции оболочки Windows

Кроме того, вы по-прежнему можете настроить интеграцию оболочки Windows с помощью отдельного установщика который больше не связан с TFS Power Tools.

Интеграция с оболочкой Windows работает не так, как раньше, но наиболее важные действия у меня сработали.

Я заметил в вопросе, что они хотят написать сценарий, для этого у меня нет решения, боюсь Я не могу найти параметр «Отменить без изменений» в VS2017 после установки связанного расширения. Я что-то пропустил ? Я не особо этим пользовался. Когда я использовал его для тестирования для моего клиента, мне пришлось немного щелкнуть в Team Explorer и убедиться, что есть изменения, которые нужно отменить. Возможно, что эта опция появляется только тогда, когда у вас есть только ожидающие изменения, поставленные в очередь для фиксации. (или меняется только одна ветка) . Параметр появляется только тогда, когда обозреватель решений открыт и готов. Это расширение работает иногда , и его присутствие связано с открытием TFS Source Control Explorer , а не с обозревателем решений (как некоторые ошибочно указывали) - не путайте два разных окна управления. Тем не мение; когда я говорю «иногда», это потому, что оно приходит и уходит. Прямо сейчас у меня его нет, был месяц назад. Это немного глючит, и я боюсь, что виноваты другие расширения, такие как Resharper и тому подобное.

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

TFS делает это, сравнивая хэши MD5 содержимого файлов до и после регистрации.

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

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

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

Помните, что отмена TFS не приведет к возврату значения "Дата изменения" файловой системы. Это очень неприятно, особенно если вы используете такие инструменты, как robocopy, для синхронизации удаленных машин. Даже после отмены проверки, если вы сохранили файл, тем самым обновив значение «Дата изменения», это обновленное значение останется неизменным даже после отмены проверки.

Либо используйте robocopy, либо VCS, использование смеси всегда будет давать несоответствия. Гораздо лучше было бы заполнить каждую машину напрямую из VCS.
  • / changeset Сравнить рабочую область с состояниями элементов в указанной версии набора изменений вместо последней версии
  • filespec . Проверяйте только перечисленные спецификации файлов на предмет избыточных изменений
  • / recursive Проверить указанные файлы с полной рекурсией
  • / noget Не запускать get перед проверкой

Теперь позвольте мне разобрать команду, рекомендованную в других ответах.

  • tfpt uu указывает, что мы хотим использовать команду «Отменить без изменений».
  • . указывает (я полагаю), что текущий рабочий каталог должен использоваться в качестве спецификации файла.
  • /noget гарантирует, что запрос "получить последнюю версию" не будет вызван перед отменой неизмененных файлов.
  • /recursive гарантирует, что будет учитываться не только спецификация файлов, но и все рекурсивные дочерние папки и файлы. Кажется, это зависит от спецификации файла - если его нет, обрабатывается вся рабочая область.

Итак, здесь есть несколько замечаний относительно команды сверху .

  • Это зависит от рабочего каталога.
  • Он не обрабатывает все рабочее пространство.

Я обнаружил, что мне лучше всего подходит следующая команда - она ​​обрабатывает все рабочее пространство.

Обратите внимание, что он по-прежнему зависит от рабочего каталога, поскольку tfpt использует его для определения того, какое рабочее пространство должно быть обработано. Но пока вы указываете путь к файлу или папке в рабочей области, все в порядке.

Я могу видеть подход Рэя LionFang выше. Не могу комментировать, так как у меня нет представителя. Хотя мне нравится этот подход, так как не требуется никаких изменений в инструментах и ​​т. Д. .

  1. Щелкните свой проект правой кнопкой мыши.
  2. выберите "Отменить оформление заказа", затем просто нажмите "ОК" или оставшееся подтверждение .
  3. тогда при отмене checkout, для каждого файла, в котором есть РЕАЛЬНЫЕ изменения, появится запрос попросить вас подтвердить получение этого файла . просто нажмите "Нет, чтобы Все »
  4. Visual Studio узнает, есть ли в извлеченном файле изменения или никто. Имейте в виду, что этот метод также удаляет добавленные файлы, которые не еще зарегистрировался из TFS .

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

Возможный обходной путь - следовать описанному выше процессу, но вместо того, чтобы нажимать «Нет для всех», нажимать «Нет» для каждого файла. Поскольку это может занять некоторое время в зависимости от количества файлов, с которыми вы работаете, то, что я обычно делаю, - это удерживая «ALT + N», и он просто ускоряет просмотр всех файлов, отменяя ВСЕ немодифицированные файлы.

Всем здравия!

Сегодняшняя заметка будет посвящена проблемным архивам, главным образом формату ZIP (как одному из самых популярных форматов для сжатия. ).

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

ускорение ПК

Что можно сделать с проблемным ZIP-архивом

Первое

Для начала следует сказать, что архивы ZIP могут быть сжаты с использованием разных алгоритмов (и разными программами). Я уж не говорю о "новом" продвинутом формате ZIPX. (который многие путают с тем же ZIP. )

И в ряде случаев (по этим причинам) определенные архиваторы не способны открывать некоторые ZIP-файлы!

Извлечь в текущую папку — WinZIP

Извлечь в текущую папку — WinZIP

Разумеется, не лишним будет попробовать разархивировать файлы из проблемного ZIP-файла и др. программами: WinRAR, Total Commander и пр.

Второе

У архиватора WinRAR есть спец. режим извлечения, при котором архиватор попробует "проигнорировать" ряд ошибок (своего рода "восстановление").

Архив открыт в WinRAR

Архив открыт в WinRAR

Третье

Если вышеприведенные советы с архиваторами не помогли — рекомендую воспользоваться утилитой Recovery Toolbox for ZIP (о компании Recovery Toolbox).

Она предназначена для восстановления файлов из поврежденных архивов (даже тех, с которыми отказываются работать WinZIP / WinRAR и др. архиваторы).

Recovery Toolbox for ZIP — скриншот работы программы

Recovery Toolbox for ZIP — скриншот работы программы

Примечание : все опции, кроме последней, доступны в режиме демо-версии . Пользователи могут делать все, что угодно, кроме сохранения восстановленных данных на диск. Логично, что это требует оплаты и регистрации Recovery Toolbox for ZIP .

После регистрации программу можно использовать без ограничений (для работы с десятками архивов). Доступ к интернету для ее работы — не требуется.

Recovery Toolbox for ZIP — восстановление файлов

Recovery Toolbox for ZIP — восстановление файлов

Четвертое

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

Если в журнале будет отображаться строка, в которой значится что "такая-то угроза обезврежена. " — попробуйте восстановить файл (отменить это действие).

Журнал угроз защитника в ОС Windows 10

Журнал угроз защитника в ОС Windows 10

Кроме этого, также порекомендую открыть свойства папки с документами (если проблемный архив хранился там) и посмотреть нет ли у нее копий (некоторые версии Windows такие копии делают по умолчанию!).

Мой компьютер - открываем свойства документов

Мой компьютер - открываем свойства документов

Разумеется, если копия системной папки есть — ее можно восстановить.

Предыдущие версии файлов

Предыдущие версии файлов

Пятое

Если у вас когда-то была нормальная копия не открывающегося ZIP-архива где-нибудь на жестком диске или флешке (но вы ее удалили) — имейте ввиду, что есть шанс, что тот "старый" файл возможно удастся восстановить с помощью спец. утилит ( прим. : т.е. мы будем пытаться не открыть проблемный ZIP; а найти "старую" копию архива, на тот момент, когда все работало).

Найденные файлы, которые можно восстановить // утилита R.Saver

Найденные файлы, которые можно восстановить // утилита R.Saver

Для начала следует сказать, что есть довольно много причин, которые могут привести к порче ZIP-файлов (да и не только их, кстати):

  1. сбои при загрузке файлов : тут можно посоветовать просто перезагрузить файл или скачать его с другого источника;
  2. вирусное заражение : здесь самый очевидный совет — использование современного антивируса + регулярное создание бэкапов (кстати, при заражении некоторыми видами вирусов — архивы вовсе уже нельзя извлечь - вирус их портит окончательно) ;
  3. ошибки программ при запаковке файлов : после того, как вы создали архив с файлами — проверьте, можно ли открыть его. В WinRAR для этого есть спец. функция тестирования архива;

WinRAR — ошибок не обнаружено!

WinRAR — ошибок не обнаружено!

В общем-то, соблюдение этих нехитрых правил, конечно, не дает 100% гарантии, но риски снижает значительно. Кстати, я бы в этом плане еще порекомендовал сделать копию документов на облачный диск (это и удобно - можно получить доступ с любого устройства; и довольно надежно).

Если вы смогли спасти данные др. способом - поделитесь в комментариях!

Читайте также: