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



Помогите разобраться в таком нюансе.

Есть определенный проект - назовем его Сервер. Билд собирается на мавене и выпускает server.war.

Другой мавен билд - назовем его Клиент - собирает клиента, выпускает client.jar, который используется для тестирования server.war.

И есть еще определенный набор артефактов - прототипы для веб страниц в виде xml файлов и картинок - которые разрабатываются для того, чтобы потом на их основании делать веб страницы для server.war. Назовем его Прототипы.

Для хранения кода используется git.

Можно ли все эти три подпроекта хранить в одном репозитории git?
То есть сделать например https://git.org/my-project/src
и в этом src сделать 3 разные директории - Server, Client, Prototypes.
В первых двух Server и Client в корне будет лежать свой src и pom.xml в каждом, потому что это каждый свой отдельный maven проект, а в Prototypes будут различные xml файлы для последующего конструирования из них страниц?

Не будет ли мешать такое соседство в корне репозитория применять возможности git в бренчевании, слиянии, stash и тп?

В git нет полноценных брэнчей как в централизованных SCM, поэтому единственная модель которая нам остаётся для работы с git это отдельный репозитарий на проект. Но в вашем случае я не вижу необходимости в нескольких репозитариях. Я так понимаю речь не идёт о выпуске нескольких конечных продуктов основанных на одной кодовой базе, продукт у Вас один, просто сделайте многомодульный maven проект и храните его в одном git репозитарии. Структура модулей может быть следующей:

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

Изменен:06 дек 2012 21:43

08 дек 2012 13:00

Можно сделать top проект maven и 2 подпроекта для клиент и сервер.
А вот что касается прототипов - то это просто складирование заготовок для страниц, из него maven проект не сделаешь.

Модераторы: Нет
Сейчас эту тему просматривают: Нет

2006 - 2016 © javatalks.ru
Powered by JCommune 3.7.3091.07d4870 byjtalks.org
Design withTwitter Bootstrap

Как добавить репозиторий в Linux?

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

СОВЕТ ДНЯ: Если вы хотите вернуть часть стоимости при покупке в интернет магазине, обязательно воспользуйтесь одним из сервисов кэшбэка:

1. EPN - самый надежный кэшбэк (Aliexpress, OZON, ASOS и BANGGOOD)

2. Алибонус - самый щедрый кэшбэк на Алиэкспресс, возвращают 10%

3. LetyShop - самое большое количество магазинов - 842 магазина!

Что такое кэшбэк и как им пользоваться читайте в ЭТОЙ СТАТЬЕ.

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

Как добавить репозиторий в Linux?

Существует несколько способов, как можно добавить репозиторий той или иной программы в ваш Linux. Изучим их все.

1. Добавление репозитория через программу Ubuntu Tweak?

Нужно зайти в пункт «центр источников» (1) и затем поставить галочки на против тех репозиториев, которые вы хотите установить (2). Затем нажмите кнопку «обновить». Репозитории добавятся и система обновит информацию о пакетах (программах). Затем система предложит вам обновить программы или установить новые. Все очень просто.

Но в этой программе конечно есть не все репозитории. Как добавить репозиторий, которого нет в программе?

2. Добавление репозитория через менеджер пакетов Synaptic?

Открываем менеджер пакетов Syptic, заходим в о вкладку «Настройки» — «Другое ПО» — «Добавить». Если мы нашли в сети адрес репозитория, типа «deb _http://ppa.launchpad.net/speed-dreams/ppa/ubuntu precise main «, то вставляем его в поле «Строка APT»

Другая интересная статья: Как установить Android в Linux?

После этого обновляем источники и закачиваем нужные пакеты.

3. Как добавить репозиторий через терминал и ppa?

Для этого нужно открыть терминал и при помощи команды «sudo add-apt-repository ppa :» добавить нужный вам репозиторий. Я привожу вам пример репозиториев, которые установлены на моём компьютере:

Дам вам маленькую подсказку: введите в поисковик фразу » add-apt-repository ppa » и вы найдёте много ссылок, где можно найти списки различных, сторонних репозиториев.

4. Как можно добавить репозиторий в Линукс вручную?

Открываем терминал и вводим команду: sudo gedit /etc/apt/sources.list У вас появится программа текстового редактора, куда можно будет добавить нужный репозиторий.

У этого способа есть небольшой минус: иногда сервер требует ключ авторизации, который нужно будет добавить вручную. Обычно команда установки ключа прилагается к репозиторию. К тому же нужно соблюдать версию дистрибутива, имя которого прописывается в записи. (например natty, как в моём случае)

Теперь вы видите, что все не так и сложно…..особенно, когда знаешь как:)

Часто на собеседованиях или перед ними просят показать какой-нибудь свой код. Я хочу написать для этих целей какой-нибудь небольшой проект и разместить его например на GitHub.

Предполагаю, что это будет небольшое веб-приложение, работающее с базой данных. Но если не ошибаюсь то на GitHub нельзя просто так взять и залить базу данных. А хотелось бы, чтобы потенциальный работодатель мог получить ссылку на репозиторий и увидеть пример работающего приложения.

Скажите пожалуйста как можно залить бд на GitHub, чтобы любой человек при желании мог целиком собрать рабочее приложение? Или может есть другие способы? Спасибо!

задан 15 авг '15 в 13:13

Меня забанят за рекламу (не своего проекта, что отчасти оправдывает)). Есть механизм для деплоя, написанный на питоне: fabric. У него есть дополнение fabtools. при помощи которого можно удаленно создать базу, пользователя в нем и добавить какие-угодно записи. Но вам, скорее всего, достаточно будет написать sql-скрипты, которые сгенерируют нужную структуру БД + инструкция по тому, как и что разворачивать. Можно и самому написать небольшой скрипт для авторазворачивания, это не сложно, главное - инструкции )) – BOPOH 15 авг '15 в 13:31

В принципе, в репозитории Git можно сохранить что угодно, в том числе бинарные файлы базы данных. Но Git хранит целые файлы, а не дельты. И тем более он не сможет сохранять изменения в том виде, в котором его воспринимают СУБД. Т.е.

Найти поле X, записать в него значение Y

  • изменение в несколько байт.
  • старая версия удаляется

Полностью удалить файл и заменить его новым.

  • изменение в много мегабайт
  • все версии сохраняются.

Таким образом, если вы будете сохранять в коммитах последовательно несколько состояний БД, то каждое будет целиком и навсегда сохранено в репозитории. Это очень быстро раздует его размеры.

  1. написать SQL / DDL код, инициализирующий базу данных в том виде, в котором она нужна для работы приложения
  2. Написать инструкцию по установке или скрипт для автоматизации установки (плюс в глазах работодателя)
  3. Публиковать в репозитории этот код и документацию (ну и само приложение).

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

Способ, который будет удобен даже в production, и который выставит вас в выгодном свете, будучи применённым в демо:

  1. Создаёте дамп структуры базы данных. Как уже было сказано, это текстовый файл. В структуре базы имеет смысл указать версию этой структуры (например, создать представление с одним селектом одной константы).
  2. Создаёте дамп тестового набора данных. Тоже текстовый файл, с INSERT'ами.
  3. (Опционально) Создаёте скрипт, обновляющий старую структуру базы до новой, на основании информации о версии структуры.
  4. Создаёте программу, каким-то образом имеющую параметры подключения к серверу и имя БД. При запуске программа подключается к серверу, проверяет версию сервера, смотрит есть ли БД. Если старая версия сервера - откланивается. Если нет базы - предлагает создать (с помощью скрипта; если выбрана галочка внесения в базу тестовых данных, то следом вносятся тестовые данные). Если старая версия структуры - предлагает обновить (с помощью скрипта).
  5. Далее программа работает как обычно.

При веб-разработке, "программа" это скорее всего страница в "/admin".

ответ дан 18 авг '15 в 12:19

Ответ очень сильно зависит от платформы, которую вы используете.

Если вы (случайно) пишете на C#/.NET, то на гитхаб можно просто так взять и залить базу данных - mdf/ldf файлы с подключением в приложение через AttachDbFileName в строке соединения. В заданных рамках - выложить куда-то пример своего кода, который можно будет забрать/показать/запустить без лишних телодвижений - это более чем подходящее решение.

Если вы при этом еще и используете Entity Framework Code First - то ваше приложение и так уже умеет создавать базу данных, и ничего никуда заливать не нужно.

На всякий случай стоит использовать имя сервера (localdb)\v11.0 в обоих вариантах - этот инстанс с большой вероятностью есть на машине с Visual Studio, и приложение можно будет запустить сразу после скачивания исходников.

ответ дан 15 авг '15 в 19:24

Ваш ответ

2016 Stack Exchange, Inc

Источники: http://javatalks.ru/topics/34655, http://prostolinux.ru/kak-dobavit-repozitoriy/, http://ru.stackoverflow.com/questions/443119/%D0%9A%D0%B0%D0%BA-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE-%D0%BE%D0%BF%D1%83%D0%B1%D0%BB%D0%B8%D0%BA%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82-%D1%81%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B0%D1%89%D0%B8%D0%B9-%D0%B1%D0%B0%D0%B7%D1%83-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85




Комментариев пока нет!

Поделитесь своим мнением