Подтвердить что ты не робот

Лучше ли хранить репозиторий Git внутри или вне рабочего пространства Eclipse?

Я типичный пользователь Eclipse/Subversion, начинающий переход на Git. Я исследовал основные понятия git и решил сначала придерживаться одного проекта на основе репозитория, чтобы все было просто. У меня все еще есть проблема, однако, решая, где разместить репозиторий для каждого проекта.

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

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

Однако на практике было бы видно, что существует множество подходов, реализованных Eclipse/EGit, некоторые из которых, похоже, противоречат рекомендациям EGit.

Например, если вы используете мастер создания нового проекта для создания нового PHP-проекта из git и репозиторий удален, Eclipse/EGit с радостью создаст папку проекта в рабочей области Eclipse и поместит репозиторий (.git) в папке проекта. Это конечный результат, который я действительно хочу, поскольку он хранит все, заключенное в рабочее пространство Eclipse.

Однако, если вы используете мастер создания проекта и выбираете репозиторий git, который является локальным, Eclipse/EGit не клонирует репозиторий, как это делают для удаленных репозиториев. Вместо этого он использует рабочую копию этого репозитория в качестве местоположения проекта, создает в этом месте свой .project и другие метафайлы, а также создает новую (казалось бы, ненужную) папку внутри этой рабочей копии с тем же именем, что и ваш проект (так что вы заканчиваете например, ~/git/blah/blah). Если вы удалите эту лишнюю папку, вы получите структуру, идентичную первому примеру, с той лишь разницей, что папка проекта не является подпапкой вашей рабочей папки Eclipse, она находится где-то еще в вашей файловой системе (например,. ~/git/blah). Единственным положительным моментом, который, по-видимому, является этот подход, является то, что он придерживается рекомендаций Руководства пользователя EGit, но с технической точки зрения его трудно понять, как это действительно все, что отличается от первого примера.

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

4b9b3361

Ответ 1

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

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

к сожалению, очень верно. Поэтому, если у вас есть каталог git с огромным количеством файлов внутри вашей рабочей области, многие операции git начинаются с диалога "counting objects...", который блокирует вашу среду IDE, потому что он сканирует все файлы в рабочей области. Для моих текущих 20000 файлов это означает, что вы ожидаете от 10 до 20 секунд для каждой фиксации, каждого переключателя,...

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

Итак, если вы идете для больших проектов, рассмотрите каталог git вне рабочей области в качестве первого выбора.

Ответ 2

Почему бы просто не разрешить две возможности.

Я в порядке для большого проекта, который генерирует много файлов в папке .metadata. Даже если довольно просто поставить строку .metadata в .gitignore, чтобы повысить производительность.

Но в моем случае (разработка Android) у меня есть около 35 различных проектов, содержащих только 50 файлов.

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

  • Должен ли я иметь только одно рабочее пространство со всеми моими проектами внутри (проводя время до прокрутка/закрытие/открытие проектов в проводнике пакетов)?

  • Должен ли я управлять двумя различными базовыми папками (Проекты и Worskspaces) с последним, содержащим только папки .metadatas всех моих проектов?

Для меня это не имеет смысла.

Сообщение для команды EGit:

Почему необходимо изменить способ, которым разработчики обычно организуют папки своих проектов:

---- Worspace

---- Worspace/.metada

----- Worspace/.git

----- Worspace/Project1

----- Worspace/LibraryProject1

----- Worspace/LibraryProject2

Я понимаю причину производительности, но только для 5% разработчиков с очень большими проектами (генерируя большие метаданные) вы просто не позволяете нам структурировать наши проекты, как говорит Eclipse с годами.

Не могли бы вы, даже если сообщение предупреждает нас о том, что оно не рекомендуется, не блокируйте процесс клонирования в папке worspace ( "C:\Worspaces\is not a empty directory" )

EGit - отличный инструмент, но я действительно думаю об использовании Bash способа beacause этого ограничение.

Спасибо за ваш ответ

PS: В Eclipse существует много разных случаев развития. Если это просто проблема с производительностью, и если это не приведет к сбою EGit, просто сообщите нам об этом, но не блокируйте нас в случае небольших проектов.

Ответ 3

Я делаю ту же миграцию, что и исходный плакат, и нашел другой поток, в котором те же сомнения выражены в рекомендации Egit: Должен ли я хранить репозиторий git в Home или Eclipse Workspace?

@JamesG Итак, это ваш макет?

~/projectA/workspace/.metadata
~/projectA/workspace/subproj1/.project
~/projectA/workspace/subproj2/.project
~/projectA/subproj1/.git
~/projectA/subproj1/file1
~/projectA/subproj2/.git
~/projectA/subproj1/file2