utros
15.11.2011 19:44 pedobook
Выполнить команду pull над репозиторием, находящимся в /path/to/repo
$ hg -R /path/to/repo pull
$ git --git-dir=/path/to/repo/.git --work-tree=/path/to/repo pull
Второе, кстати, крайне хреново работает. Реквестируются способы сделать хорошо.
о да, вербозный гит такой вербозный
cd /path/to/repo; git pull; cd $OLDPWD
мне, вот, чисто из любопытства интересно: а cd из шелла вырезали специально, да? :)
Я не хочу менять рабочую папку скрипта. Там хитрокод.
Да, специально. Если делать cd, то придётся в ещё десятке мест проверку делать или принудительный переход.
you cannot into subshell or $OLDPWD ?
s/хитро/быдло/
subshell очень хорошо, да. Фактически стековая модель:
push (current_env)
do_whatever_you_want
pop()
олсо, в баше есть явные pushd и popd, если уж так хочется.
...
( cd /path/to/repo; git pull; cd $OLDPWD )
не?
баш ненужен. скрипты надо писать на sh
в сабшелле cd $OLDPWD ненужно, cwd родительского процесса и так не изменится
Костыли же!
Оно искаропки не умеет что-ли по-человечески одной командой это делать?
И да, у меня нет полнофункционального шелла.
Я, конечно, могу дёрнуть sh -c 'cd /path/to/repo && git pull', но это совсем не Ъ
На sh приходится изобретать велосипеды для массивов.
А чем тебя пугает идея конструировать сущности в одну, о пользователь UNIX-(подобной?) системы ?
Меня не пугает идея, меня напрягает то, что конкретная программа работает не так, как должна и приходится из-за этого городить костыли.
Это субъективная грань.
почему "не так, как должна"? она работает именно так, как она должна. Как её написали.
Другое дело, что "не так, как ты хочешь" :)
man git
То, что я написал, должно заставлять гит работать так, как я хочу. Он же отказывается.
В общем, вместо того, чтобы городить костыли, я массово снёс гит, воткнул везде hg-git и щаслив до неприличия.
В данном случае был перешагнут не только субъективный, но и объективный барьер.
массивы ненужны
копипаст же
Срать во временные файлы — не ок, поэтому массивы няшки и нужны.
нет, массивы не нужны, временные файлы на tmpfs для этого и придуманы
ну и еще для кучи вкусняшек
1. Не всегда есть доступ к tmpfs
2. Если скрипт отвалится, файл останется → утечка памяти
3. Нехилая часть скриптов гоняется (по крайней мере у меня) от имени непревелигированного (скорее даже жестоко кастрированного) пользователя, так что кто-то другой может прочитать содержимое временного файла и ЗОХВАТИТЬ МИР!
sh -c "touch /tmp/file; ( ... ) rm -f /tmp/file" чтобы это развалилось, нужно очень постораться
3. umask 0077, не?
с тем же успехом, кто-нибудь из группы mem может прочитать содержимое /proc/<pid>/какая-тохуйняеще и прочитать содержимое памяти!
У тебя есть кто-то в группе mem?
У тебя /tmp смонтирована в tmpfs? О_О
у меня да. это удобно
И тут ты решишь собрать libreoffice...
1) по-умолчанию пакеты собираются в директории work, которая создаётся внутри директории порта
2) для таких толстых портов у меня специально вписаны исключения, что их надо собирать не в /tmp (их 2 или 3 всего)
3) ....
4) PROFIT!
и у меня
root в группе mem
ты не поверишь
И тут я делаю ремаунт на 9 Гб :)
/dev/shm, кстати, не доступна только в каких-то неправильных линуксах
/me лежит с недобуком с гигом оперативки и тихо тебя ненавидит :)
лижет? ты — нетбук? оО
s/быдло/legacy/