cranequinier: (65x70)
cranequinier ([personal profile] cranequinier) wrote2015-02-11 09:33 pm

Git vs Mercurial чтоб сохранять timestamp-ы

Это пост для программистов. Вдруг кто чего подскажет.

Делаю новый репозиторий для глубоко приватных C++-ных исходников. Собираюсь его бесплатно хостить на Bitbucket, и доступаться к нему из пары-тройки мест на планете через SourceTree. Выбираю между Git и Mercurial. И вот меня скрутило - исходники, люди и процессы такие, что надо сохранять дату файлов на диске, хоть ты тресни. А оне оба - и Git и Mercurial - по-умолчанию ставят дату последнего слива с сервера. При этом Mercurial довольно просто фиксится примочкой TimestampMod Extension, и начинает даты файлов уважеть, а Git если и фиксится вообще, то как-то через задницу как и всё в Git. Поэтому я слегка скрипя сердцем склоняюсь к Mercurial, хотя знаю его похуже и вообще он какой-то умирающий.

Может я какую-то фигню делаю, а надо хостить где-то ещё, на своём хостинге, использовать SVN и переходить на Жабу? Вправьте мне скорее мозги... Ну чего вообще интересного есть в мире code hosting-а...

P.S. Мечта, конечно, fossil, но его считай что нету.

[identity profile] nice-beaver.livejournal.com 2015-02-12 05:25 pm (UTC)(link)
Троллите? Ну-ну.

[identity profile] cranequinier.livejournal.com 2015-02-12 05:33 pm (UTC)(link)
Правду говорю.

[identity profile] nice-beaver.livejournal.com 2015-02-12 05:50 pm (UTC)(link)
Ну расскажите же мне, как написать простейший контейнер на Си, так чтобы он был typesafe

[identity profile] alextutubalin.livejournal.com 2015-02-12 05:55 pm (UTC)(link)
Сначала вы нам расскажите про move semantics, так чтобы даже тупой понял и не делал ошибок.

C++ образца 1991-го года - неплохой язык.

C++14 - ужасен.

[identity profile] nice-beaver.livejournal.com 2015-02-12 06:15 pm (UTC)(link)
Не спорю, С++ постепенно превращается в монстра. Но всегда можно выделить некий кусок, который дает явные преимущества по сравнению с голым С и на нем программировать. Вменяемые инженеры так и поступают.

[identity profile] alextutubalin.livejournal.com 2015-02-12 06:19 pm (UTC)(link)
Ага, мы такое уже видели с языком Perl.

Когда у меня пяток разработчиков в одном проекте фигачили на перле - мне (начальнику над ними) приходилось работать переводчиком. Потому что перлы друг друга они не понимали.

С современным C++ совершенно аналогичная херня. Язык слишком сложный, сферический в вакууме разработчик знает 5%, думает что знает еще 15 и эти дольки у всех разные.

[identity profile] nice-beaver.livejournal.com 2015-02-12 06:31 pm (UTC)(link)
Все это бред, есть вполне вменяемый гугловский Style Guide
Но вас я понимаю, вы измучены Перлом

[identity profile] alextutubalin.livejournal.com 2015-02-12 06:40 pm (UTC)(link)
Гайды есть.

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

[identity profile] nice-beaver.livejournal.com 2015-02-12 06:44 pm (UTC)(link)
Ну бред же - возьмите гугловский гайд и объявите своим. в приказном порядке.

[identity profile] alextutubalin.livejournal.com 2015-02-12 06:52 pm (UTC)(link)
Глянул. Есть copy/move (считается, значит, что гугловый сотрудник понимает), запрещены exceptions.
Не все согласятся.

То есть если вот на входном интервью спрашивать про copy/move всерьез - сотрудников не останется. Не спрашивать - нельзя этот гайд использовать.

[identity profile] cranequinier.livejournal.com 2015-02-12 07:02 pm (UTC)(link)
> Ну бред же - возьмите гугловский гайд и объявите своим. в приказном порядке.

А какому-нибудь опенсорцному Tesseract-у на 20 мегабайт исходников вы что объявите?

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

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

[identity profile] nice-beaver.livejournal.com 2015-02-12 11:33 pm (UTC)(link)
Внутри себя пишите по гайду, на работу гомосеков-психоделиков навешивайте фасады

[identity profile] cranequinier.livejournal.com 2015-02-12 06:29 pm (UTC)(link)
> Но всегда можно выделить некий кусок, который дает явные преимущества по сравнению с голым С и на нем программировать.

Угу. И мы даже знаем этот кусок - комментарий //

Всё остальное спорно, разные авторы предлагают выкинуть разные куски.

[identity profile] nice-beaver.livejournal.com 2015-02-12 06:32 pm (UTC)(link)
Даже если взять одно слово - и то будет полезнее, чем голый С. А если еще запретить макросы, заменив темплейтами и инлайнами - вообще красота.

[identity profile] cranequinier.livejournal.com 2015-02-12 06:28 pm (UTC)(link)
> как написать простейший контейнер на Си, так чтобы он был typesafe

Написать сверху комментарий "этот хэндл не на файл, а на битмап". А кому этого мало - тех уволить.

Я недавно в фэйсбуке читал от одного знатного шараварщика - "появились программисты со сборщиком мусора. Без сборки мусора они сильно теряются."

[identity profile] nice-beaver.livejournal.com 2015-02-12 06:30 pm (UTC)(link)
Я бы, наоборот, уволил вас, с таким пониманием программирования. Комментарий он напишет.

[identity profile] cranequinier.livejournal.com 2015-02-12 06:33 pm (UTC)(link)
> Я бы, наоборот, уволил вас, с таким пониманием программирования.

Да вы вообще очень невежливый, за вами это давно замечено.

> Комментарий он напишет.

Тут я пожалуй соглашусь - нафига такие комментарии?
Достаточно переменная разумно назвать. Типа

HANDLE hBitmap = 0;

[identity profile] nice-beaver.livejournal.com 2015-02-12 06:36 pm (UTC)(link)
Ага-ага. Венгерскую нотацию давайтее еще эксгумируем

[identity profile] alextutubalin.livejournal.com 2015-02-12 06:55 pm (UTC)(link)
Ну вот кстати я приучился уже скоро будет 20 лет как писать свой менеджер памяти.
И никогда не делать free() (а delete у меня и так почти нет), ибо оно само.

Отличная вещь, лучше сборки мусора!

[identity profile] cranequinier.livejournal.com 2015-02-12 06:57 pm (UTC)(link)
И потом нету гаже занятия, чем сшивать три чужих куска с тремя своими менеджерами памяти.

[identity profile] alextutubalin.livejournal.com 2015-02-12 07:05 pm (UTC)(link)
О да!
Но если таскать все в себе, а наружу иметь чисто C-шные структуры данных, то жизнь не так плоха.

А если иметь C++-ные интерфейсы, как нам тут предлагают (ну, по всей видимости), то будет масса других полезных развлечений, до менеджеров памяти не дойдет.