Как синхронизировать / зеркально отобразить репозиторий ‘Files’ и репозиторий ‘git’ в SourceForge?

#git #file #sourceforge

#git #файл #sourceforge

Вопрос:

в данный момент мы создаем репозиторий утилит сообщества в sourceforge, который будет управляться несколькими «менеджерами», но доступен для сообщества. Я изначально загрузил все утилиты на вкладку ‘Files’ проекта. После этого я увидел, что git также можно использовать, что кажется нам удобным.

Итак, создали репозиторий проекта в git / SourceForge и запустили весь проект, и это нормально.

Вопрос в том, что у меня есть сильное ощущение, что файлы, перечисленные на вкладке ‘Files’ sourceforge, полностью отличаются от файлов, которые я вижу на вкладке ‘Git’.

Мы хотели бы управлять файлами из git, но при этом файлы должны быть видны и доступны на вкладке ‘Files’.

Возможно ли это? У меня такое ощущение, что файлы на вкладке ‘Files’ хранятся в другом месте, чем файлы на вкладке ‘Git’.

Заранее спасибо

Ответ №1:

Да, они находятся в совершенно разных местах в SF, и вы не можете синхронизировать их автоматически. Одна из причин, по которой вы не можете синхронизировать git и files, заключается в том, что репозитории git в SF являются пустыми, они не содержат рабочего каталога, они содержат только базу данных объектов и ссылки.

Знаете ли вы, что можете использовать ssh для входа в SF, scp , sftp и rsync для передачи файлов туда и обратно? Я использую его постоянно с 2004 года.

Для входа в свою учетную запись запустите

 ssh -t $SF_USER@shell.sourceforge.net create
  

После входа в систему запустите sf-help --all , чтобы просмотреть все ваши каталоги.

Файлы, репозитории и веб-файлы (вы знаете, что можете опубликовать сайт в SF?) находятся по путям, специфичным для проекта. Например, я являюсь участником проекта SQLObject, мое имя пользователя в SF phd . Репозитории для проекта находятся по адресу /home/git/p/sqlobject/ , файлы находятся по адресу /home/frs/project/sqlobject/ , а веб-файлы (опубликованные в SQLObject) находятся по адресу /home/project-web/sqlobject/ . Это всего лишь пример, но ваши каталоги похожи.

Для загрузки файла я использую sftp frs.sourceforge.net:/home/frs/project/sqlobject и загружаю локальные файлы в SF.

Для обновления веб-сайта я запускаю

 rsync -hlrtP4 --del . web.sourceforge.net:/home/project-web/sqlobject/htdocs/
  

Замените sqlobject на название вашего проекта и начните загрузку.

Комментарии:

1. Отлично! Спасибо. Теперь я понимаю, как это работает. Учитывая, что у меня может быть ssh на сервере sourceforge, я уверен, что вкладка File может быть передана git-клоном в репозиторий sourceforge git, который в этом случае будет работать идеально для меня. Просто нужно git pull каждый раз, когда поступает запрос от одного из администраторов репозитория

2. Что ж, это не работает: разрешений недостаточно для создания репозитория .git. Я попробую с rsync

3. Возможно, FRS и web не разрешают файлы с именами, начинающимися с точки. rsync --exclude=.git/