dotfiles и mercurial

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Ardling
Сообщения: 67
ОС: Gentoo

dotfiles и mercurial

Сообщение Ardling »

Дошел до состояния, когда появилось нудержимое желание хранить конфики своих компов в некоей системе контроля версий. Конкретно мне глянулся bitbucket.org, работающий на mercurial. Он отлично подходит для вского рода исходников, но с конфигами есть проблемы, так как имеет смысл выносить в меркуриал не все файлы в моей папке, а только некоторые конфиги. Подскажите, кто сталкивался с подобными проблемами, и как их решали.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: dotfiles и mercurial

Сообщение sash-kan »

а в чём проблема? тем более проблемы?

QUOTE писал(а):Он отлично подходит для вского рода исходников
по этому поводу есть разные мнения.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Ardling
Сообщения: 67
ОС: Gentoo

Re: dotfiles и mercurial

Сообщение Ardling »

sash-kan писал(а): ↑
26.11.2010 19:05
а в чём проблема? тем более проблемы?


Проблема в том, что я не хочу расшаривать вообще все файлы в своем домащнем каталоге. А если я случайно нажму hg add перед hg commit то мне уже никогда не удалить из сети свои данные.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: dotfiles и mercurial

Сообщение sash-kan »

1. у вас поведение команды add как-то странно настроено. с чего бы она добавляла хоть один файл, если вы ни одного не указываете? перенстройте, если mercurial это допускает.
2. где mercurial репозиторий хранит? в каталоге .hg? переименуйте его. ведь наверняка mercurial позволяет передать нестандартный каталог в виде параметра. а чтобы с этим репозиторием работать, и добавляйте такой параметр.

QUOTE писал(а):если я случайно нажму hg add перед hg commit то мне уже никогда не удалить из сети свои данные.
перечитал, и понял, что я, видимо, чего-то не понял. разве при команде commit данные куда-то пересылаются?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Ardling
Сообщения: 67
ОС: Gentoo

Re: dotfiles и mercurial

Сообщение Ardling »

sash-kan писал(а): ↑
30.11.2010 02:13
если я случайно нажму hg add перед hg commit то мне уже никогда не удалить из сети свои данные.
перечитал, и понял, что я, видимо, чего-то не понял. разве при команде commit данные куда-то пересылаются?

Да, я забыл про hg push, но тем не менее проблема осталась - при hg add все файлы в каталоге будут подечены на добавление в меркуриал. Мне кажется так по запаре можно всю свою коллекцию личных фоток опубликовать)
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: dotfiles и mercurial

Сообщение sash-kan »

можно палец себе отрезать и при безобидной нарезке батона хлеба.
вы к чему ведёте?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: dotfiles и mercurial

Сообщение deadhead »

[x] close
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: dotfiles и mercurial

Сообщение drBatty »

ну во первых .hgignore (как уже сказано), во вторых, не надо делать репозиторий hg из своего домашнего каталога. Лучше сделайте много разных репозиториев.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: dotfiles и mercurial

Сообщение sash-kan »

drBatty писал(а): ↑
10.12.2010 17:14
не надо делать репозиторий hg из своего домашнего каталога
у hg есть проблемы в этом плане?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: dotfiles и mercurial

Сообщение nickm »

А если сделать так:
нужные конфиги переместить в ~/.dotfiles напирмер, создать там репо (git/hg/whatever)
и руками или скриптом делать симлинки на конфиги, т.е. .bashrc - симлинк на ~/.dotfiles/.bashrc
Например так - https://github.com/ryanb/dotfiles
Раскидывание симлинков - https://github.com/ryanb/dotfiles/blob/master/Rakefile
тут правда git и Ruby rake, но идея применима к hg

sash-kan писал(а): ↑
10.12.2010 19:41
drBatty писал(а): ↑
10.12.2010 17:14
не надо делать репозиторий hg из своего домашнего каталога
у hg есть проблемы в этом плане?

нет, но как то не по-людски делать репо из ~ imho.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: dotfiles и mercurial

Сообщение watashiwa_daredeska »

nickm писал(а): ↑
13.12.2010 09:53
как то не по-людски делать репо из ~
Почему?

nickm писал(а): ↑
13.12.2010 09:53
Например так - https://github.com/ryanb/dotfiles
М-м-м… Как бы это так помягче сказать, чтоб не обидеть… Не доверяю я в плане руления дотфайлами человеку, который .bash_profile в .bashrc целиком запихал.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: dotfiles и mercurial

Сообщение drBatty »

watashiwa_darede... писал(а): ↑
13.12.2010 11:04
Почему?

потому-что ~ это личное, а .hg это общественное. Хотя, если ~ это отдельный пользователь, то тогда нормально.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: dotfiles и mercurial

Сообщение watashiwa_daredeska »

drBatty писал(а): ↑
13.12.2010 11:55
.hg это общественное
С какой стати? hg, как и git, достаточно мощная штука, чтобы суметь поработать примитивной rcs для ~.
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: dotfiles и mercurial

Сообщение nickm »

watashiwa_daredeska писал(а): ↑
13.12.2010 11:04
nickm писал(а): ↑
13.12.2010 09:53
как то не по-людски делать репо из ~

Почему?

Если делать репо из ~ - то там больше пропивывать в игнор придётся, + существует вероятность добавить что-то лишнее (да-да, надо всегда смотреть что коммитиш, и есть возможность откатить изменения, но...)
Ещё плюс хранения в отдельной директории - это то, что ее можно без проблем запаковать и перенести на другую машину, где (пока еще, или нет возможности поставить) не стоит твоя любимая [D]VCS.
Единственный минус - это расстановка симлинков в ~ врукопашную или самопальным/копипастой скриптом
В общем на вкус и цвет... по мне, так вкуснее.


watashiwa_daredeska писал(а): ↑
13.12.2010 11:04
nickm писал(а): ↑
13.12.2010 09:53
Например так - https://github.com/ryanb/dotfiles
М-м-м… Как бы это так помягче сказать, чтоб не обидеть… Не доверяю я в плане руления дотфайлами человеку, который .bash_profile в .bashrc целиком запихал.

Он ещё и макось с текстмейтом юзает, совсем ужас :) К томуже, что мешает написать свою рулилку дотфайлами? Я это как пример привёл.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: dotfiles и mercurial

Сообщение watashiwa_daredeska »

nickm писал(а): ↑
13.12.2010 12:37
Если делать репо из ~ - то там больше пропивывать в игнор придётся
Я делал echo '*' >.gitignore; git add .gitignore. Works for me, дёшево и сердито :)

nickm писал(а): ↑
13.12.2010 12:37
существует вероятность добавить что-то лишнее
Конечно. Добавлять ведь легко. Делать геморройное добавление ради того, чтобы не добавить лишнее — вот это как раз не по-людски.

nickm писал(а): ↑
13.12.2010 12:37
(да-да, надо всегда смотреть что коммитиш, и есть возможность откатить изменения, но...)
Что «но»? Если что-то лишнее добавил — удали. Если что-то секретное случайно добавил, вроде .ssh/id_rsa — удали из истории. Какая проблема?

nickm писал(а): ↑
13.12.2010 12:37
Единственный минус - это расстановка симлинков в ~ врукопашную или самопальным/копипастой скриптом
Это не единственный минус, но даже он весьма неприятен, если счет дотфайлам начинает идти на десятки и не плоско в ~, а с подкаталогами.
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: dotfiles и mercurial

Сообщение nickm »

Кстати, инересно.
Я тут погуглил, вобщем большинство постов на тему git+dotfiles ведут на статьи типа "делаем .dotfiles, кидаем утда свои конфиги, пишем скрипт"
на тему hg+dotfiles - "идём в ~, фигачим там hg-репо, пишем в ~/.hgignore что нам не надо"

ТСу наверное будет интересно это http://blog.smartercode.net/2010/02/versio...-mercurial.html
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: dotfiles и mercurial

Сообщение watashiwa_daredeska »

nickm писал(а): ↑
13.12.2010 12:37
Он ещё и макось с текстмейтом юзает, совсем ужас
В юзании макоси нет ничего неправильного, а вот запихивать .profile в .bashrc — банально неправильно и показывает, что автор просто не знает, что когда и зачем вызывается.
Спасибо сказали:
Ardling
Сообщения: 67
ОС: Gentoo

Re: dotfiles и mercurial

Сообщение Ardling »

Я пока остановился на .hgignore и сделал из ~ репозторий. Рисковано конечно, но я лучшего ешения пока не нашел. Можно конечно делать отдельную папку и линки, но ИМХО гемороя больше, чем пруфита. Вообще если кто-то придумал иное решение, можно обсудить в данном топике.
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: dotfiles и mercurial

Сообщение nickm »

watashiwa_daredeska писал(а): ↑
13.12.2010 12:46
nickm писал(а): ↑
13.12.2010 12:37
существует вероятность добавить что-то лишнее
Конечно. Добавлять ведь легко. Делать геморройное добавление ради того, чтобы не добавить лишнее — вот это как раз не по-людски.

Где оно геморройное? Я разницу только в 1 действие увидел - cp ~/.somecfg ~/.dotfiles, остальные действия будут точно такие-же (а ну еще в ~/.dotfiles надо будет ходить, изменения фиксировать).

watashiwa_daredeska писал(а): ↑
13.12.2010 12:46
nickm писал(а): ↑
13.12.2010 12:37
(да-да, надо всегда смотреть что коммитиш, и есть возможность откатить изменения, но...)
Что «но»? Если что-то лишнее добавил — удали. Если что-то секретное случайно добавил, вроде .ssh/id_rsa — удали из истории. Какая проблема?

Не проблема, проблема будет, если уже запушил. Плясать с rebase, пока оно свтетися на весь мир на github (а потом может и в кеше гугла)

watashiwa_daredeska писал(а): ↑
13.12.2010 12:46
nickm писал(а): ↑
13.12.2010 12:37
Единственный минус - это расстановка симлинков в ~ врукопашную или самопальным/копипастой скриптом
Это не единственный минус, но даже он весьма неприятен, если счет дотфайлам начинает идти на десятки и не плоско в ~, а с подкаталогами.

Проблема-то в чём? Если ~/.dotfiles повторяет, но ~/ только с нужными трекинге файлами? Лучше конешно, после появления всякой фигни в ~ бегать ~/.gitignore их добавлять.

У меня в ~ нового чаще и больше появляется, чем новых конфигов, нуждающихся в трекинге git.
В общем в описываемых Вами "плюсов" трекинга всего ~ с игнором ненужного я вижу для себя больше неудобства, в отличие от складывания нужных конфигов в ~/.dotfiles

watashiwa_daredeska писал(а): ↑
13.12.2010 12:48
nickm писал(а): ↑
13.12.2010 12:37
Он ещё и макось с текстмейтом юзает, совсем ужас
В юзании макоси нет ничего неправильного, а вот запихивать .profile в .bashrc — банально неправильно и показывает, что автор просто не знает, что когда и зачем вызывается.

Напишите ему, что он не прав - https://github.com/ryanb/dotfiles/issues Мне даже интересно, что он ответит.
Дядька, ЕМНИП, zsh юзает с недавнего времени.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: dotfiles и mercurial

Сообщение watashiwa_daredeska »

nickm писал(а): ↑
13.12.2010 13:13
Я разницу только в 1 действие увидел - cp ~/.somecfg ~/.dotfiles, остальные действия будут точно такие-же
Отлично, и как же это лишнее действие помогает? Если делать не глядя, то ещё одно лишнее действие просто не поможет, это уже доказано на опыте окошек с подтверждениями Ok и/или Cancel — пользователи просто рефлекторно научаются жать Enter 28 раз подряд и их это даже не сильно напрягает, пока оно не сломается.
А если делать глядя, то и без всяких лишних ~/.dotfiles можно остановиться и подумать, прежде чем коммитить и пушить.

nickm писал(а): ↑
13.12.2010 13:13
Лучше конешно, после появления всякой фигни в ~ бегать ~/.gitignore их добавлять.
В .gitignore можно добавить всё сразу, чтоб не мучаться, выше я показывал как. Будет ровно то же самое, что с .dotfiles — пока руками не положишь, не добавится. Можно в .gitignore только некоторые файлы добавлять, секретные вроде .ssh/*. Можно shell-однострок для добавления сделать, который будет проверять права доступа перед добавлением в репозиторий.

nickm писал(а): ↑
13.12.2010 13:13
У меня в ~ нового чаще и больше появляется, чем новых конфигов, нуждающихся в трекинге git.
У меня аналогично. Именно поэтому в .gitignore прописана '*'.
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: dotfiles и mercurial

Сообщение nickm »

watashiwa_daredeska писал(а): ↑
13.12.2010 17:38
nickm писал(а): ↑
13.12.2010 13:13
Я разницу только в 1 действие увидел - cp ~/.somecfg ~/.dotfiles, остальные действия будут точно такие-же
Отлично, и как же это лишнее действие помогает?

Я описывал 2 плюса выше отдельного хранения конфигов. Не учли, нде.

watashiwa_daredeska писал(а): ↑
13.12.2010 17:38
В .gitignore можно добавить всё сразу, чтоб не мучаться, выше я показывал как. Будет ровно то же самое, что с .dotfiles — пока руками не положишь, не добавится. Можно в .gitignore только некоторые файлы добавлять, секретные вроде .ssh/*.

Спасибо, кэп!
watashiwa_daredeska писал(а): ↑
13.12.2010 17:38
Можно shell-однострок для добавления сделать, который будет проверять права доступа перед добавлением в репозиторий.

Там скрипт, тут скрипт... а если не видно разницы, то ну его нафиг.
Ни одного довода, чтобы менять способ трекинга конфигов не увидел.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: dotfiles и mercurial

Сообщение sash-kan »

nickm писал(а): ↑
13.12.2010 18:09
Ни одного довода, чтобы менять способ трекинга конфигов не увидел.
зачем менять? просто в следующий раз сделайте так, как проще. делов то…
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: dotfiles и mercurial

Сообщение watashiwa_daredeska »

nickm писал(а): ↑
13.12.2010 18:09
Там скрипт, тут скрипт... а если не видно разницы, то ну его нафиг.
Не совсем. Фукционала этого скрипта в приведенном Вами решении нет, так что это дополнительная функциональность. Имеющиеся функции приведенного Вами решения реализуются голым git'ом без всяких доп. скриптов и лишних припрыжек.
nickm писал(а): ↑
13.12.2010 18:09
Я описывал 2 плюса выше
Это про это
nickm писал(а): ↑
13.12.2010 12:37
Ещё плюс хранения в отдельной директории - это то, что ее можно без проблем запаковать и перенести на другую машину, где (пока еще, или нет возможности поставить) не стоит твоя любимая [D]VCS.
? git archive --prefix ./ HEAD | gzip -c >dotfiles.tar.gz
Или я ещё какой-то плюс пропустил?

watashiwa_darede... писал(а): ↑
13.12.2010 20:42
Или я ещё какой-то плюс пропустил?
И, кстати, распаковка .tar.gz возможна практически везде, а вот в приведенном решении с отдельным каталогом и скриптом… Скрипт надо существенно переработать, ибо ruby ещё далеко не везде имеется и его установка может быть также или даже более затруднительна, чем установка git.

nickm писал(а): ↑
13.12.2010 13:13
Напишите ему, что он не прав - https://github.com/ryanb/dotfiles/issues Мне даже интересно, что он ответит.
Я этой штукой не пользуюсь и вряд ли буду. Так что, напишите сами, если Вы заинтересованы в этой программулине.
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: dotfiles и mercurial

Сообщение nickm »

sash-kan писал(а): ↑
13.12.2010 19:41
nickm писал(а): ↑
13.12.2010 18:09
Ни одного довода, чтобы менять способ трекинга конфигов не увидел.
зачем менять? просто в следующий раз сделайте так, как проще. делов то…

Дык. Как есть, так и проще.
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: dotfiles и mercurial

Сообщение nickm »

watashiwa_daredeska писал(а): ↑
13.12.2010 20:42
git archive --prefix ./ HEAD | gzip -c >dotfiles.tar.gz
Или я ещё какой-то плюс пропустил?

в моем случае просто tar cjf dotfiles.tar.bz2 ~/.dotfiles, все опции git не упомнишь.
Еще плюс то, что нужные для трекинка конфиги лежат в одном месте, отсюда как раз и получается:
watashiwa_darede... писал(а): ↑
13.12.2010 20:42
Или я ещё какой-то плюс пропустил?
И, кстати, распаковка .tar.gz возможна практически везде, а вот в приведенном решении с отдельным каталогом и скриптом… Скрипт надо существенно переработать, ибо ruby ещё далеко не везде имеется и его установка может быть также или даже более затруднительна, чем установка git.

Скрипт не надо перерабатывать. архив с dotfiles просто распаковывается в ~ на той машине, где не стоит git. В принципе так и делаею, на свежеподнятой машине (тяжко без привычных alias и настроек vim), а потом уж и ruby и git, т.к. и то и то для работы обычно нужно.

watashiwa_daredeska писал(а): ↑
13.12.2010 20:42
Я этой штукой не пользуюсь и вряд ли буду. Так что, напишите сами, если Вы заинтересованы в этой программулине.

Ну не мне же глаза резало то, что человек .bash_profile и .bashrc путает.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: dotfiles и mercurial

Сообщение watashiwa_daredeska »

nickm писал(а): ↑
14.12.2010 09:14
архив с dotfiles просто распаковывается в ~ на той машине, где не стоит git.
А как же rake install?
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: dotfiles и mercurial

Сообщение nickm »

watashiwa_daredeska писал(а): ↑
14.12.2010 10:09
nickm писал(а): ↑
14.12.2010 09:14
архив с dotfiles просто распаковывается в ~ на той машине, где не стоит git.
А как же rake install?

dotfiles и mercurial а если перечитать ещё раз?
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: dotfiles и mercurial

Сообщение watashiwa_daredeska »

nickm писал(а): ↑
14.12.2010 10:22
а если перечитать ещё раз?
Перечитал. И не только пост, но и исходники. Файлы хранятся в отдельном каталоге, под совсем другими именами. Вместо ~/.bashrc есть ~/.dotfiles/bashrc. Ну, распакую я ~/.dotfiles, а симлинк .bashrc→.dotfiles/bashrc кто делать будет?
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: dotfiles и mercurial

Сообщение serzh-z »

Логичнее всего, для "RCS для ~" написать несколько скриптов (или один, с getopt) - home-add, home-commit и т.д. Которые будут фильтровать "случайное добавление ненужных файлов" и скрывать всю работу с VCS.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: dotfiles и mercurial

Сообщение watashiwa_daredeska »

serzh-z писал(а): ↑
14.12.2010 13:22
написать несколько скриптов (или один, с getopt) - home-add, home-commit и т.д. Которые будут фильтровать "случайное добавление ненужных файлов"
Зависит от цели. Я, например, для себя решил, что добавление файлов в репозиторий исключительно вручную — то, что мне надо. Потому что немаловажным для меня является возможность merge изменений, сделанных на разных машинах, а merge'ить автоматически генерённые конфиги — удовольствие сильно ниже среднего.

А для случая линейной истории изменений (просто чтобы можно было вернуться к прошлой версии) да, это самое логичное. Можно даже автоматический регулярный add/commit сделать наподобие etckeeper.
Спасибо сказали: