dotfiles и mercurial
Модератор: Bizdelnick
-
Ardling
- Сообщения: 67
- ОС: Gentoo
dotfiles и mercurial
Дошел до состояния, когда появилось нудержимое желание хранить конфики своих компов в некоей системе контроля версий. Конкретно мне глянулся bitbucket.org, работающий на mercurial. Он отлично подходит для вского рода исходников, но с конфигами есть проблемы, так как имеет смысл выносить в меркуриал не все файлы в моей папке, а только некоторые конфиги. Подскажите, кто сталкивался с подобными проблемами, и как их решали.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: dotfiles и mercurial
а в чём проблема? тем более проблемы?
по этому поводу есть разные мнения.QUOTE писал(а):Он отлично подходит для вского рода исходников
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Ardling
- Сообщения: 67
- ОС: Gentoo
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: dotfiles и mercurial
1. у вас поведение команды add как-то странно настроено. с чего бы она добавляла хоть один файл, если вы ни одного не указываете? перенстройте, если mercurial это допускает.
2. где mercurial репозиторий хранит? в каталоге .hg? переименуйте его. ведь наверняка mercurial позволяет передать нестандартный каталог в виде параметра. а чтобы с этим репозиторием работать, и добавляйте такой параметр.
2. где mercurial репозиторий хранит? в каталоге .hg? переименуйте его. ведь наверняка mercurial позволяет передать нестандартный каталог в виде параметра. а чтобы с этим репозиторием работать, и добавляйте такой параметр.
перечитал, и понял, что я, видимо, чего-то не понял. разве при команде commit данные куда-то пересылаются?QUOTE писал(а):если я случайно нажму hg add перед hg commit то мне уже никогда не удалить из сети свои данные.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Ardling
- Сообщения: 67
- ОС: Gentoo
Re: dotfiles и mercurial
Да, я забыл про hg push, но тем не менее проблема осталась - при hg add все файлы в каталоге будут подечены на добавление в меркуриал. Мне кажется так по запаре можно всю свою коллекцию личных фоток опубликовать)
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: dotfiles и mercurial
можно палец себе отрезать и при безобидной нарезке батона хлеба.
вы к чему ведёте?
вы к чему ведёте?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
deadhead
- Сообщения: 1913
- Статус: zzz..z
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: dotfiles и mercurial
ну во первых .hgignore (как уже сказано), во вторых, не надо делать репозиторий hg из своего домашнего каталога. Лучше сделайте много разных репозиториев.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: dotfiles и mercurial
у hg есть проблемы в этом плане?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
nickm
- Сообщения: 203
- ОС: RFRemix
Re: dotfiles и mercurial
А если сделать так:
нужные конфиги переместить в ~/.dotfiles напирмер, создать там репо (git/hg/whatever)
и руками или скриптом делать симлинки на конфиги, т.е. .bashrc - симлинк на ~/.dotfiles/.bashrc
Например так - https://github.com/ryanb/dotfiles
Раскидывание симлинков - https://github.com/ryanb/dotfiles/blob/master/Rakefile
тут правда git и Ruby rake, но идея применима к hg
нет, но как то не по-людски делать репо из ~ imho.
нужные конфиги переместить в ~/.dotfiles напирмер, создать там репо (git/hg/whatever)
и руками или скриптом делать симлинки на конфиги, т.е. .bashrc - симлинк на ~/.dotfiles/.bashrc
Например так - https://github.com/ryanb/dotfiles
Раскидывание симлинков - https://github.com/ryanb/dotfiles/blob/master/Rakefile
тут правда git и Ruby rake, но идея применима к hg
нет, но как то не по-людски делать репо из ~ imho.
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: dotfiles и mercurial
Почему?
М-м-м… Как бы это так помягче сказать, чтоб не обидеть… Не доверяю я в плане руления дотфайлами человеку, который .bash_profile в .bashrc целиком запихал.
Мои розовые очки
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: dotfiles и mercurial
потому-что ~ это личное, а .hg это общественное. Хотя, если ~ это отдельный пользователь, то тогда нормально.
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: dotfiles и mercurial
С какой стати? hg, как и git, достаточно мощная штука, чтобы суметь поработать примитивной rcs для ~.
Мои розовые очки
-
nickm
- Сообщения: 203
- ОС: RFRemix
Re: dotfiles и mercurial
Если делать репо из ~ - то там больше пропивывать в игнор придётся, + существует вероятность добавить что-то лишнее (да-да, надо всегда смотреть что коммитиш, и есть возможность откатить изменения, но...)
Ещё плюс хранения в отдельной директории - это то, что ее можно без проблем запаковать и перенести на другую машину, где (пока еще, или нет возможности поставить) не стоит твоя любимая [D]VCS.
Единственный минус - это расстановка симлинков в ~ врукопашную или самопальным/копипастой скриптом
В общем на вкус и цвет... по мне, так вкуснее.
watashiwa_daredeska писал(а): ↑13.12.2010 11:04М-м-м… Как бы это так помягче сказать, чтоб не обидеть… Не доверяю я в плане руления дотфайлами человеку, который .bash_profile в .bashrc целиком запихал.
Он ещё и макось с текстмейтом юзает, совсем ужас
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: dotfiles и mercurial
Я делал echo '*' >.gitignore; git add .gitignore. Works for me, дёшево и сердито :)
Конечно. Добавлять ведь легко. Делать геморройное добавление ради того, чтобы не добавить лишнее — вот это как раз не по-людски.
Что «но»? Если что-то лишнее добавил — удали. Если что-то секретное случайно добавил, вроде .ssh/id_rsa — удали из истории. Какая проблема?
Это не единственный минус, но даже он весьма неприятен, если счет дотфайлам начинает идти на десятки и не плоско в ~, а с подкаталогами.
Мои розовые очки
-
nickm
- Сообщения: 203
- ОС: RFRemix
Re: dotfiles и mercurial
Кстати, инересно.
Я тут погуглил, вобщем большинство постов на тему git+dotfiles ведут на статьи типа "делаем .dotfiles, кидаем утда свои конфиги, пишем скрипт"
на тему hg+dotfiles - "идём в ~, фигачим там hg-репо, пишем в ~/.hgignore что нам не надо"
ТСу наверное будет интересно это http://blog.smartercode.net/2010/02/versio...-mercurial.html
Я тут погуглил, вобщем большинство постов на тему 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
В юзании макоси нет ничего неправильного, а вот запихивать .profile в .bashrc — банально неправильно и показывает, что автор просто не знает, что когда и зачем вызывается.
Мои розовые очки
-
Ardling
- Сообщения: 67
- ОС: Gentoo
Re: dotfiles и mercurial
Я пока остановился на .hgignore и сделал из ~ репозторий. Рисковано конечно, но я лучшего ешения пока не нашел. Можно конечно делать отдельную папку и линки, но ИМХО гемороя больше, чем пруфита. Вообще если кто-то придумал иное решение, можно обсудить в данном топике.
-
nickm
- Сообщения: 203
- ОС: RFRemix
Re: dotfiles и mercurial
watashiwa_daredeska писал(а): ↑13.12.2010 12:46Конечно. Добавлять ведь легко. Делать геморройное добавление ради того, чтобы не добавить лишнее — вот это как раз не по-людски.
Где оно геморройное? Я разницу только в 1 действие увидел - cp ~/.somecfg ~/.dotfiles, остальные действия будут точно такие-же (а ну еще в ~/.dotfiles надо будет ходить, изменения фиксировать).
watashiwa_daredeska писал(а): ↑13.12.2010 12:46Что «но»? Если что-то лишнее добавил — удали. Если что-то секретное случайно добавил, вроде .ssh/id_rsa — удали из истории. Какая проблема?
Не проблема, проблема будет, если уже запушил. Плясать с rebase, пока оно свтетися на весь мир на github (а потом может и в кеше гугла)
watashiwa_daredeska писал(а): ↑13.12.2010 12:46Это не единственный минус, но даже он весьма неприятен, если счет дотфайлам начинает идти на десятки и не плоско в ~, а с подкаталогами.
Проблема-то в чём? Если ~/.dotfiles повторяет, но ~/ только с нужными трекинге файлами? Лучше конешно, после появления всякой фигни в ~ бегать ~/.gitignore их добавлять.
У меня в ~ нового чаще и больше появляется, чем новых конфигов, нуждающихся в трекинге git.
В общем в описываемых Вами "плюсов" трекинга всего ~ с игнором ненужного я вижу для себя больше неудобства, в отличие от складывания нужных конфигов в ~/.dotfiles
watashiwa_daredeska писал(а): ↑13.12.2010 12:48В юзании макоси нет ничего неправильного, а вот запихивать .profile в .bashrc — банально неправильно и показывает, что автор просто не знает, что когда и зачем вызывается.
Напишите ему, что он не прав - https://github.com/ryanb/dotfiles/issues Мне даже интересно, что он ответит.
Дядька, ЕМНИП, zsh юзает с недавнего времени.
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: dotfiles и mercurial
Отлично, и как же это лишнее действие помогает? Если делать не глядя, то ещё одно лишнее действие просто не поможет, это уже доказано на опыте окошек с подтверждениями Ok и/или Cancel — пользователи просто рефлекторно научаются жать Enter 28 раз подряд и их это даже не сильно напрягает, пока оно не сломается.
А если делать глядя, то и без всяких лишних ~/.dotfiles можно остановиться и подумать, прежде чем коммитить и пушить.
В .gitignore можно добавить всё сразу, чтоб не мучаться, выше я показывал как. Будет ровно то же самое, что с .dotfiles — пока руками не положишь, не добавится. Можно в .gitignore только некоторые файлы добавлять, секретные вроде .ssh/*. Можно shell-однострок для добавления сделать, который будет проверять права доступа перед добавлением в репозиторий.
У меня аналогично. Именно поэтому в .gitignore прописана '*'.
Мои розовые очки
-
nickm
- Сообщения: 203
- ОС: RFRemix
Re: dotfiles и mercurial
Я описывал 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
зачем менять? просто в следующий раз сделайте так, как проще. делов то…
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: dotfiles и mercurial
Не совсем. Фукционала этого скрипта в приведенном Вами решении нет, так что это дополнительная функциональность. Имеющиеся функции приведенного Вами решения реализуются голым git'ом без всяких доп. скриптов и лишних припрыжек.
Это про это
? git archive --prefix ./ HEAD | gzip -c >dotfiles.tar.gz
Или я ещё какой-то плюс пропустил?
И, кстати, распаковка .tar.gz возможна практически везде, а вот в приведенном решении с отдельным каталогом и скриптом… Скрипт надо существенно переработать, ибо ruby ещё далеко не везде имеется и его установка может быть также или даже более затруднительна, чем установка git.
Я этой штукой не пользуюсь и вряд ли буду. Так что, напишите сами, если Вы заинтересованы в этой программулине.nickm писал(а): ↑13.12.2010 13:13Напишите ему, что он не прав - https://github.com/ryanb/dotfiles/issues Мне даже интересно, что он ответит.
Мои розовые очки
-
nickm
- Сообщения: 203
- ОС: RFRemix
-
nickm
- Сообщения: 203
- ОС: RFRemix
Re: dotfiles и mercurial
watashiwa_daredeska писал(а): ↑13.12.2010 20:42git 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
-
nickm
- Сообщения: 203
- ОС: RFRemix
Re: dotfiles и mercurial
dotfiles и mercurial а если перечитать ещё раз?
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: dotfiles и mercurial
Перечитал. И не только пост, но и исходники. Файлы хранятся в отдельном каталоге, под совсем другими именами. Вместо ~/.bashrc есть ~/.dotfiles/bashrc. Ну, распакую я ~/.dotfiles, а симлинк .bashrc→.dotfiles/bashrc кто делать будет?
Мои розовые очки
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: dotfiles и mercurial
Логичнее всего, для "RCS для ~" написать несколько скриптов (или один, с getopt) - home-add, home-commit и т.д. Которые будут фильтровать "случайное добавление ненужных файлов" и скрывать всю работу с VCS.
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: dotfiles и mercurial
Зависит от цели. Я, например, для себя решил, что добавление файлов в репозиторий исключительно вручную — то, что мне надо. Потому что немаловажным для меня является возможность merge изменений, сделанных на разных машинах, а merge'ить автоматически генерённые конфиги — удовольствие сильно ниже среднего.
А для случая линейной истории изменений (просто чтобы можно было вернуться к прошлой версии) да, это самое логичное. Можно даже автоматический регулярный add/commit сделать наподобие etckeeper.
Мои розовые очки