LINUX.ORG.RU

Совместная разработка с вендузятником, чтобы всем было просто

 , , ,


1

1

Я решил начать совместный проект, с человеком, который думает, что программирование — это таскать кнопочки-на-формочки в вижуалстудии, и пользуется исключительно вендой.
Я решил создать приватный git-репозиторий, заставить вендузятника использовать mingw и git. Но давать ему права на запись в этот репозиторий я не хочу, ибо я думаю, что на каждый его коммит будет мой корректирующий коммит с исправленными отступами, названиями переменных и переписанными комментариями на английском. Лучше пусть присылает пулл-реквесты, а я буду их отклонять пока код не станет вменяемого качества. Вот такое вот самодурство.
Как можно сделать такой форк, который бы всегда поддерживался в актуальном состоянии? Это возможно? Что ещё посоветуете для решения такой непростой задачи?

★★★★★
Ответ на: комментарий от erzent

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

CYB3R ★★★★★
() автор топика

1. Одна бабка мне сказала, что для javascript они юзают git pre-commit hook который включает esprima, чтобы та переформатнула код по всем принятым у них там правилам.

http://esprima.org/

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

2. Потом, у git есть опции хранения/посылания CRLF.

3. Есть же editorconfig и прочая лабуда, чтобы поддерживать на уровне репозитория одинаковые сеттинги IDE-шек. Придется, конечно, установить соответствующие плагины, но тем не менее, часть проблем должно решить.

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

я бы посоветовал сменить виндузятника.

+1

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

Но тут беда в том, что проект-то его, а не мой.

Тогда как ты планируешь осуществить «Я решил создать приватный git-репозиторий, заставить вендузятника использовать mingw и git.»?

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

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

CYB3R ★★★★★
() автор топика

что на каждый его коммит будет мой корректирующий коммит

Лучше пусть присылает пулл-реквесты, а я буду их отклонять пока код не станет вменяемого качества

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

mtk
()

Пусть в ветку коммитает.

Желательно в фиче бранчу, но если совсем не обучаем, то пусть коммитает в свой «dno/master», а ты будешь ревьювить и тянуть изменения сам.

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

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

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

На каком нибудь гитлабе

Я хотел использовать gitorious, как самый фичастый. Там есть подобное?

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

Хз, у меня гиториусный интерфейс вызывает вырывание глаз, поэтому я его стараюсь не использовать, ну или по крайней мере сам инициатором его использования никогда не выступаю.

Для мелких проектов гитлаб одна фигня прикольней: там из коробки мерж реквесты(х3 как оно в гиториусе), и багтрекер простенький (когда последний раз глядел на гиториус - не увидел его там), плюс в нагрузку идёт хранилище сниппетов :)

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

Но вообще может лучше наставить падавана на путь истинный?

Или подстроиться под него, раз уж проект и плюшки егоные?

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

Ну или если влом разворачивать гитлаб - можно на битбакете, там всё тоже самое и 5 халявных приватных реп дают.

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

Или подстроиться под него, раз уж проект и плюшки егоные?

Мы живём не так уж далеко друг от друга (примерно 10км), но он предлагает мне возить ему код на флешке (с FAT или NTFS), так как у меня же машина есть. Меня это не устраивает, ибо я хочу контроль версий. А мержить код с двух флешек — трудоёмкая работа.

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

он предлагает мне возить ему код на флешке (с FAT или NTFS),

Отправь ему распечатку по почте ггг

AF ★★★
()

Что ещё посоветуете для решения такой непростой задачи?

Ввести понятие стандарта оформления кода.

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

можно на битбакете, там всё тоже самое и 5 халявных приватных реп дают.

Реп сколько угодно, а вот пользователей до 5.

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

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

Ввести понятие штрафов - забил на стандарт, минус один процент от доли. Глядишь, через неделю можно проект не продолжать, а деньги вам уже вендолюбитель будет должен.

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

он предлагает мне возить ему код на флешке (с FAT или NTFS), так как у меня же машина есть.

— Бегите, глупцы!

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

он предлагает мне возить ему код

Да он совсем оборзел! Из него хотят сделать человека программиста, а он ещё условия выкатывает.

Какой профит ты хочешь получить?

Deleted
()

Что ещё посоветуете для решения такой непростой задачи?

Посоветую самое прагматичное решение - забить.

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

Ну если найдёшь хостинг то может и не надо будет. Но его развернуть в дебиановской виртуалке - полчаса, с придумыванием пароля. У меня оно норм тянуло 1 проект на 512 мб, и 50% одного ведра от core2 duo.

Но если разворачивать не охота, то лучше bitbucket, он и покачественней запилен и, для твоих целей, полностью халявен.

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

А, ну как вариант. Просто я к тому, что там всё есть, как и на битбакете, но на битбакете - сделанно всё чуть по качественней.

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

Набор основного функционала у них одинаковый ибо все они косят под github: вики, код, трекер, интеграция с CI, merge requests, pull requests. На битбакете, ещё можно хостить сайты типо как на гитхабе.

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

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

На битбакете - вот тут https://bitbucket.org/<your-name>/<your-project>/admin/branches

batbko
()
Последнее исправление: batbko (всего исправлений: 1)

Лучше пусть присылает пулл-реквесты, а я буду их отклонять пока код не станет вменяемого качества. Вот такое вот самодурство.

Это не самодурство, а нормальная работа.

Как можно сделать такой форк, который бы всегда поддерживался в актуальном состоянии? Это возможно? Что ещё посоветуете для решения такой непростой задачи?

Дык сделай для него отдельный репозиторий у себя на сервере.

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

Может, всё-таки отдельную ветку?

Если есть возможность разграничить права доступа, то да.

Deleted
()

заставить вендузятника использовать mingw

А зачем? Я так понимаю, что речь о С++? Пусть поставит студию посвежее - там С++ более-менее нормально поддерживается. В CMake прописать флаг отключающий нестандартные расширения для майкросовтовского компилера и пусть работает в привычной среде.

Форматирование решается тулазами, тот же clang это умеет, например.

Комментарии на русском и подобную ересь можно на уровне коммит-хуков блокировать.

Но вообще всё сильно зависит от того, что ты хочешь получить. Если «вендузятник» программировать не умеет и учиться не хочет, то пусть продолжает идеи генерировать, а код будет на тебе. Если же хочется его чему-то научить, то лучше ревьювать его код и бить по рукам. Со временем станет проще.

Ну или если задача позволяет и не хочется «лишнее» время тратить, то проще выделить ему отдельные модули и пусть там делает, что хочет. Останется следить только за тем, чтобы код собирался (ну и работал).

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

Я так понимаю, что речь о С++?

Нет.

CMake

Тоже нет, только plain Makefile без CMake и autotools.

Форматирование решается тулазами

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

CYB3R ★★★★★
() автор топика

Только при чём тут вендузятник?... Просто возьми профи, а не чайника, который думает, что кнопочки тягать надо. Иначе он тебе только в обузу будет (какая может быть пользя от человека тягающего кнопочки). А ты в таком случае - ССЗБ.

upd: разче что пусть переводы клепает, допустим.

invy ★★★★★
()
Последнее исправление: invy (всего исправлений: 2)
Ответ на: комментарий от CYB3R

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

anonymous
()

mingw и git

вот так не надо.

-> tortoisegit

не надо никого заставлять пользовать то что ему не нравится.

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

anonymous
()

Что пишете-то хоть? Какие технологии будете использовать?

Твой выбор — либо Github, если сразу OpenSource, либо BitBucket, если хочется вдвоём покодить втихушку.

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

Это если самому лень заниматься поднятием своего сервака, gitlab'а и прочего. Чуваку достаточно зарегаться на ресурсе и всё.

EXL ★★★★★
()

Ну нифига себе ты псих.
Какая тебе разница? Пусть хоть из-под ДОСа сидит.
Вы на одном языке пишете? Ну вот и пишите.
А какая-то система контроля версий будет объединять ваши труды.
Что? Комментарии? Да тебя надо заспиртовать и в палату мер и весов.
Как ты думаешь, почему человек пишет комментарии не по-английски? А потому, мой дорогой сумасшедший друг, что на английском он сможет лишь писать заклинания призыва Сферического Ктулху.

самодурство

А... Блин. Сразу не увидел этого слова. Ну тогда да — сам дурак и коллегу дураком выставляешь.

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

Дык сделай для него отдельный репозиторий у себя на сервере.
git

/0

svn user detected :)

У каждого локально свои ветки. Свой репозиторий. А ТС может спокойно вытащить что ему надо у коллеги из репозитория и наоборот.

invy ★★★★★
()
Последнее исправление: invy (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

Это я уже сделал.
Только я уверен, что ему насрать. А если сразу не начать делать хорошо, проект утонет в этом дерьме и загнётся.

CYB3R ★★★★★
() автор топика

заставить вендузятника использовать mingw и git.

зачем? особенно про mingw.

и переписанными комментариями на английском.

феерической дол-5.1-изм.

Что ещё посоветуете для решения такой непростой задачи?

вдоль.

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

-> tortoisegit

gitextensions + git source control provider для студии.

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

ему насрать

это уже совсем другой вопрос. не надо держать таких людей.

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

Какая тебе разница? Пусть хоть из-под ДОСа сидит.

Так я и не диктую из под чего ему сидеть. Просто нужно как-то учитывать кодировки и терминаторы строк.
Комментарии можно писать только на английском языке.

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

Комментарии можно писать только на английском языке.

Это язык который вас объединяет или вы всё таки знаете оба русский?

Просто нужно как-то учитывать кодировки и терминаторы строк.

В любом (почти) редакторе это настраивается. Мне кажется проблема несколько высосана из пальца.

Stahl ★★☆
()
Ответ на: комментарий от CYB3R

Просто нужно как-то учитывать кодировки и терминаторы строк.

Когда ставишь git extensions, он предлагает возможность конвертировать терминаторы при коммите.
кодировка только utf-8, т.к. с utf-16 гит (искаропки) не работает, считает файл бинарным со всеми вытекающими.

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