LINUX.ORG.RU
ФорумAdmin

redmine+git Делать коммиты и клоны репозитариев без консоли

 , , , ,


0

3

Сабж. Установил и насторил связку redmine+git, думал что в этом случае получится работать с репозитариями без консоли, но походу ошибался. Хочется сделать так, чтобы можно было делать коммиты прямо из редмайна, чтобы сократить кол-во используемых инструментов. С гитом опыта работы нету, но реалии говорят о том, что нужно срочно внедрять репозитарий, т.к. уже больше 100 проектов.

Чтобы было более понятно опишу что к чему. Я разрабатываю сайты на основе собственной цмс, из проекта в проект она совершенствуется, и необходимо контролировать кучу вариантов. Есть сервер для разработки, где на поддоменах лежат все сайты. В кач-ве редактора сорцов использую PSPad, он позволяет редактировать файлы прямо на фтп, не закачивая их на локальную машину. апач настроен таким образом, что при создании (или клонировании) нового репозитария создается поддомен для проекта.

Вопросы:

1 - Можно ли както клонировать проект в редмайне (branch насколько я понял) чтобы сразу автоматически создавался репозитарий для него.

2 - Можно ли както сделать так, чтобы можно было прямо в редмайне делать коммиты, и все остальные действия связанные с работой в гит?


Т.е. надо работать с git при этом не осиливая git?

Необходим анальный зонд но при этом чтобы не было неприятных ощущений в заднем проходе?

Найми уже для этой работы «таджика» либо выучи git сам.

anonymous ()
Ответ на: комментарий от anonymous

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

wkst ()
Ответ на: комментарий от panter_dsd

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

wkst ()

Redmine не для этого предназначен. Выбирай задачам соответствующие инструменты. Gitlab сейчас вполне годная вещь.

panter_dsd ★★★★ ()

Чтобы было более понятно опишу что к чему. Я разрабатываю сайты на основе собственной цмс, из проекта в проект она совершенствуется, и необходимо контролировать кучу вариантов. Есть сервер для разработки, где на поддоменах лежат все сайты. В кач-ве редактора сорцов использую PSPad, он позволяет редактировать файлы прямо на фтп, не закачивая их на локальную машину. апач настроен таким образом, что при создании (или клонировании) нового репозитария создается поддомен для проекта.

Как-то странно у тебя процесс организован. По-хорошему, это должно выглядеть примерно так:

  • Ты делаешь изменения локально.
  • Ты коммитишь эти изменения в (D)VCS.
  • Continuous integration ловит эти изменения и деплоит их на тестовый сервер.
  • Continuous integration запускает автоматические тесты (если они есть). Или ты тестишь всё глазами и руками.
  • Если всё ок - изменения переносятся «в продакшен».

У тебя процесс выглядит наоборот =).

Deleted ()
Ответ на: комментарий от Deleted

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

wkst ()
Ответ на: комментарий от panter_dsd

Redmine не для этого предназначен. Выбирай задачам соответствующие инструменты. Gitlab сейчас вполне годная вещь.

Я подумал, раз редмайн может показывать коммиты и все такое, почему он не смог бы их делать? на мой взгляд достаточно странно то, что ещё никто не написал нужный плагин )

wkst ()

Ты не хочешь делать коммиты в redmine. Ты хочешь разобраться в Git'е.

Sectoid ★★★★★ ()
Ответ на: комментарий от anonymous

Какой глупый нынче пошел анонимус! Совсем уже неторт.

trex6 ★★★★★ ()
Ответ на: комментарий от wkst

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

похоже что тебе нужно менять инструмент разработки и ее схему. согласен с mironov_ivan. посмотри в сторону ide в которых есть интеграция с git

fr_butch ()
Ответ на: комментарий от fr_butch

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

Нашел скрипт(https://github.com/Lennie/git-webcommit) который делает примерно то, что я хочу, но хотелось бы что-то получше... Видать придется самому писать плюгин для редмайна.

wkst ()

это вопрос не к redmine

gitlab, gitorious, rhodecode

feofil ()
Ответ на: комментарий от feofil

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

wkst ()
Ответ на: комментарий от wkst

нет локальных копий хранилища - это vim в tmux. всё остальное - это в любом случае синхронизация, пусть и быстрая-быстрая.

Только я не понял, какое это имеет отношение к вопросу. А во-вторых, в чём проблема в случае dvcs иметь хоть локальную, хоть 10 локальных копий? Зачем вообще использовать ftp, если dvcs прекрасно выполняет все задачи по синхронизации, по резервированию и по удобству править «где угодно», а не на ftp.

Не нравится git, возьми hg - он проще.

А вообще, у rhodecode, как, наверное, и у других - есть веб-интерфейс для редактирования файлов. Вот и пиши в нём, раз ты такой принципиальный.

feofil ()
Ответ на: комментарий от feofil

если я правильно понял, rhodecode примерно то, что мне нужно. Он может делать коммиты?

wkst ()
Ответ на: комментарий от wkst

если я правильно понял, rhodecode примерно то, что мне нужно. Он может делать коммиты?

Давай играть в данетки. Ты будешь задавать вопросы, а я буду отвечать «да», «нет», «некорректно» или как-то так.

если я правильно понял, rhodecode примерно то, что мне нужно. Он может делать коммиты?

Да. Н/к.

И в rhodecode (в открытой версии 1.7.2, новую коммерческую не смотрел) нет issue tracker. То есть, оно никак не соотносится с redmine, это разные вещи.

feofil ()

апач настроен таким образом, что при создании (или клонировании) нового репозитария создается поддомен для проекта

вообще что ли никакой системы контроля версий нету?

guest_star ()
Ответ на: комментарий от feofil

Для начала спасибо за развернутый ответ ) в данетки играть не стоит, постараюсь изложить более связно )

Проблема в локальных копиях состоит в следующем: Я делаю сайты, а это значит что для локальной отладки нужно иметь apache+mysql(denwer использовал раньше, когда работал один). В данный момент, над одним проектом работает несколько человек, и чтобы все всё видели самый удобный вариант это работа на одном удаленном сервере. Таким образом, локально мы не имеем ничего кроме редактора и браузера, что позволяет работать с любой машины с доступом в интернет. Более того, в любой момент времени можно показать клиенту промежуточные результаты по адресу project.dev.mydomain . И из этого проблема с использованием традиционного подхода к разработке, который описал mironov_ivan, и сложности с работой в репозитарии, ведь придется работать из командной строки, а мои верстальщики этого не умеют, да и неохота их пускать в шелл.

rhodecode - как я понял коммитит только по одному файлу, который изменен непосредственно в его веб интерфейсе, а хотелось бы делать любые коммиты из веб интерфейса.

(надеюсь понятно объяснил...)

wkst ()
Ответ на: комментарий от guest_star

в данный момент нет. Пытаюсь внедрить, но есть сложности которые я описал тут, и пытаюсь решить с помощью этого форума )

wkst ()
Ответ на: комментарий от wkst

начинать отсюда

Вообще, коммит, по сути - это разница между набором и набором. Поэтому как «делать коммиты из rhodecode», я не могу понять даже теоретически.

В данный момент, над одним проектом работает несколько человек, и чтобы все всё видели самый удобный вариант это работа на одном удаленном сервере.

А как решаются конфликты (вася залил, а петя тут же затёр своей версией)? Как сделать откат на старую рабочую версию? Как резервировать от внезапной ошибки?

ведь придется работать из командной строки, а мои верстальщики этого не умеют

Они мышкой верстают, что ли? Запомнить ровно три команды - hg push, hg pull -u и hg commit - это не трагедия. Плюс есть куча оболочек. При таком подходе хоть понятно, кто какие изменения куда положил. А если все сваливают всё в кучу, то я вообще не представляю, как это отслеживать.

И из этого проблема с использованием традиционного подхода к разработке

Вообще не вижу сложностей. Правда, у меня python и никакая mysql мне не нужна, поэтому проблем с dev-сервером не стоит. У всех есть репозитории, и все из них делают коммиты (потому что, как это делать вне репозитория, мне вообще непонятно). Я вообще не понимаю, как это - править прямо на сервере. А если я полфункции написал, и спать мне захотелось, тогда что - ни у кого ничего не работает? А если я нечаянно пару функций стёр или испортил - тогда что? Что-то, какой-то фантастический сценарий получается.

feofil ()
Ответ на: комментарий от wkst

в данный момент нет

и как вы слияние клонов делаете или как выковыриваете изменения из них в основной проект?

ты вот пишешь, что не хочешь поднимать локальные веб-сервера у разработчиков. А сколько у вас тестовых серверов на 100 проектов и их клонов, когда несколько человек захотят про тестить один и тот же проект?

Все равно не понимаю: ну редактируют они файл удаленно, что в общем случае меняется, если они хранят файлы локально, делают комиты, потом отправляют изменения на сервер в общий репозиторий, там сразу устраняют конфликты версий и в обычном порядке запускают.

ведь придется работать из командной строки, а мои верстальщики этого не умеют

пусть учатся, если хотят зарплату и дальше получать.

http://git-scm.com/book/ru гит на начальном уровне, пригодном для комфортного использования учится за 10 минут.

guest_star ()
Ответ на: комментарий от guest_star

и как вы слияние клонов делаете или как выковыриваете изменения из них в основной проект?

Делаем ручками. Долго и нудно, потому и хочу внедрить гит.

ты вот пишешь, что не хочешь поднимать локальные веб-сервера у разработчиков. А сколько у вас тестовых серверов на 100 проектов и их клонов, когда несколько человек захотят про тестить один и тот же проект?

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

Все равно не понимаю: ну редактируют они файл удаленно, что в общем случае меняется, если они хранят файлы локально, делают комиты, потом отправляют изменения на сервер в общий репозиторий, там сразу устраняют конфликты версий и в обычном порядке запускают.

Если будем хранить файлы локально, то при верстке и отладке придется постоянно обновлять нужный файл на сервере, это лишние движения. Либо локально поднимать на каждом компе апач, мускуль, и потом синхронизировать файлы и базу данных с удаленным сервером, опять же лишние движения и сложности с работой за новым компом.

Скажу также что ситуации, когда два или более человек правят 1 файл почти не встречаются, т.к. зоны ответственности у каждого свои. Иногда бывает такое, конечно, но редко.

пусть учатся, если хотят зарплату и дальше получать.

http://git-scm.com/book/ru гит на начальном уровне, пригодном для комфортного использования учится за 10 минут.

Спасибо за ссылку! Учится будем обязательно, но как я писал выше, не хочу давать шелл доступ им) п.с. я разбирался с гит по этому учебнику: http://githowto.com/

wkst ()
Ответ на: комментарий от wkst

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

А помоему сейчас движений лишних у вас как раз больше, я уж молчу про потенциальные факапы при ручном слиянии и прочем.

Если будем хранить файлы локально, то при верстке и отладке придется постоянно обновлять нужный файл на сервере

ну да, если как у вас, то нужно делать коммит на рабочем компе и опять отправлять на сервер, чтоб только потом увидеть результат. IDE c поддержкой гита уменьшит затраты на рутинные операции и это довольно просто будет делать. Но вряд ли есть такие, кто поддерживает работу только с удаленным гит репозиторием.

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

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

я разбирался с гит по этому учебнику

тогда уж лучше http://try.github.com/levels/1/challenges/1

guest_star ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.