Как мне использовать Git с Visual Studio для хранения рабочих пространств, не нажимая их? - PullRequest
0 голосов
/ 15 октября 2019

Я использовал Git с Visual Studio около 9 месяцев и искал в Интернете, как это сделать, но до сих пор не нашел, что эта проблема решена. Возможно, я искал с неправильными ключевыми словами.

Под «рабочими пространствами» я имею в виду среду разработчика для вкладок, окон, точек останова и закладок в Visual Studio, которую пользователь может установить в течение времени (s) он работает над историей. Я имею в виду не среду разработки без кода Visual Studio, а среду, основанную на проектах Visual Studio.

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

Шаги:

  1. Разработчик создает новую ветвьлибо из локальной копии мастер-ветви, либо напрямую из онлайн-мастер-ветви.
  2. В процессе добавления функции или применения исправления разработчик переходит к соответствующим файлам и устанавливает свое «рабочее пространство» с файлами. связанных с этой областью кода, добавляемой или изменяемой.
  3. Как только исправление зафиксировано и отправлено на рецензирование, разработчик переходит к следующей истории, создавая новую ветку от master, как и раньше.
  4. Если есть предложение или проблема с кодом во время peer reПо мнению разработчиков, разработчик должен прекратить любую работу, которую он выполняет (либо зафиксировать или спрятать свою работу локально), и переключиться обратно на эту ветку, чтобы решить или исследовать проблему.
  5. Когда разработчик делает это, ни один из открытыхфайлы, разделенные окна, закладки или точки останова изменяются на то, что было, когда они проверяли свою работу.
  6. После того, как разработчик исправил / решил проблему, они переключаются обратно на работу, из которой были прерваны, нажав кнопкукопить или извлекать локальный коммит.
  7. Опять же, ни один из связанных открытых файлов, отдельных окон, закладок и т. д. не восстанавливается.

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

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

Спасибо.

Ответы [ 2 ]

0 голосов
/ 16 октября 2019

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

Переключение задачи в Task Canvas автоматически восстанавливает вкладки, фрагменты кода, заметки, стартап проекты и ветка Git. Сохранение окон, точек останова и закладок еще не реализовано.

0 голосов
/ 15 октября 2019

Должен ли пользователь «немедленно» прерывать то, что он делает, чтобы обратиться к комментариям к обзору, зависит от динамики команды [1].

Я предполагаю, что предложу пару хаков - потому что их нетЯ не рекомендую никаких технических решений проблемы, как вы ее представляете, но моя реальная рекомендация: не [2].

Но хорошо ... самое простое решение для разработчика, который считает, что это проблемаскорее всего, использовать несколько рабочих деревьев. Когда задача отправлена ​​на проверку, вместо того, чтобы проверять ветку для следующей задачи в текущем рабочем дереве, вы можете добавить новую и работать там. https://git -scm.com / docs / git-worktree

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

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


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

[2] Вопрос ставит не ту проблему. Загрузка файлов - это наименьшая часть стоимости переключения контекста. Вы можете использовать git, чтобы быстро восстановить, над какими файлами вы работали (разведите ветку по базе слияния, используя --name-only). Вы можете использовать IDE для быстрого перехода к соответствующим файлам.

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

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