Можно ли поделиться одним файлом в корневой папке нескольких репозиториев git?

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

Есть ли способ поделиться одним файлом В КОРНЕ РЕПОЗИТОРИЯ GIT в нескольких репозиториях? Есть ли какие-либо другие способы, о которых кто-то знает, которые не включают в себя какой-либо скрипт, который «загружает» ту же версию файла? Большое спасибо за любую помощь, заранее.

Ваше здоровье


person Max v. Steiger    schedule 02.10.2019    source источник
comment
Не очень хорошее решение, но пока все разработчики имеют одинаковую структуру каталогов, вы можете использовать файл .editorconfig в корневой папке ваших проектов и использовать символическую ссылку в конкретных проектах. Вы должны позаботиться о том, чтобы использовать относительные пути, и, скорее всего, они будут работать только для mac os и linux.   -  person triplem    schedule 02.10.2019
comment
Я бы установил переменную среды, чтобы установить путь   -  person EncryptedWatermelon    schedule 02.10.2019


Ответы (2)


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

Один из способов сделать это — предоставить репозиторий, содержащий .editorconfig и любой другой соответствующий код разработки, и проверить другой код под ним. GitLab использует это для своих сред разработки.

person bk2204    schedule 02.10.2019
comment
пока это кажется лучшим шансом для общего файла. Мы также протестировали с подмодулем и символическими ссылками, но git продолжает видеть файл как измененный. Можно добавить его в .gitignore, но для его настройки потребуется пара шагов. Я очень надеялся на быстрое и простое решение. Похоже, ваш вариант пока лучший. - person Max v. Steiger; 03.10.2019

Я определил следующим образом:

  1. Создайте пакет NuGet с файлом .editorconfig внутри.
  2. Добавьте это в файл .csproj пакета NuGet.
<ItemGroup>
  <None Update=".editorconfig">
    <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  </None>
</ItemGroup>
  1. Добавьте ссылку или установите пакет NuGet в свой проект, куда вы хотите импортировать файл .editorconfig.
  2. Затем добавьте эту цель в проект.
<Target Name="CopyFile" AfterTargets="AfterBuild">
    <Copy SourceFiles="$(OutDir)/.editorconfig" DestinationFolder="./" />
</Target>

  1. Создайте свой проект, и .editorconfig появится в корне вашего проекта.

Я считаю, что есть возможность изменить файл .csproj во время процесса установки пакета NuGet. Если это так, то шаг 4 можно автоматизировать.

person Yevheniy Tymchishin    schedule 12.03.2020
comment
Я пытался выполнить те же шаги, но .editorconfig не добавляется в .nupkg. Вы сделали что-то особенное, чтобы убедиться, что файл включен в nupkg? - person GustavoTM; 01.06.2020
comment
@GustavoTM К сожалению, нет, у меня просто есть моя сборка локально, и я просто ссылаюсь на нее. - person Yevheniy Tymchishin; 02.06.2020
comment
@GustavoTM Кажется, вам нужно добавить файл в каталог содержимого. stackoverflow.com/questions/10785596/ - person Yevheniy Tymchishin; 21.08.2020