typechecker: (Default)
typechecker ([personal profile] typechecker) wrote2004-09-22 01:51 pm
Entry tags:

Затоваривание на диске

Начала было писать пост про [пока несделанную] оптимизацию хранения файлов. Меня в последнее время пробило на мысли в эту сторону. Пробило после одновременной работы над лингвистическими задачами, переводом одной книги и версткой другой книги, после разъездов между домом, дачей, родителями и работой. В результате бардак среди моих файлов, раскиданных по трем-четырем постоянным рабочим местам, достиг критической точки.
Так вот, пока что я хочу спросить вас: наблюдается ли у вас неразбериха в файлах, т.е. ситуации, когда на диске валяется много разных версий одного и того же, на разных рабочих местах (если они есть) лежат одни и те же файлы, и все это нужно свести воедино? Есть ли у вас трудности с переносом файлов из одного рабочего места в другое (типа, где-то есть usb и выделенка для почты, а где-то только неработающий дисковод)? Подчеркиваю, речь идет об индивидуальной работе, а не о совместной, в которой не грех и CVS'ом пользоваться.
И как вы выходите из такого бардака? (Возможные выходы мы недавно обсуждали с [livejournal.com profile] _af_ и [livejournal.com profile] gogabr, и каждый вариант мне казался по-своему плохим. Вот хочется услышать мнение широкой аудитории.)

[identity profile] true-lja-lja.livejournal.com 2004-09-22 10:39 am (UTC)(link)
a rasskazhi poka, chto govorili _af_ i Jura?

Анологично

[identity profile] enia-enka.livejournal.com 2004-09-22 10:52 am (UTC)(link)
У меня кошмарный бардак с файлами, хотя у меня меньше "точек". Два компьютера дома и один на работе. Плюс еще дискетки, на которых я все это ношу. Самую новую версию приходится искать путем долгих мыслительных усилий и сличения даты и содержания. Это ужасно. Недавно меня попросили переслать кому-то дисер. Он у меня в четырех файлах и у каждого три-четыре-пять версий. Чуть с ума не сошла. Я думала это исключительно следствие моей безолаберности. А расскажи чего люди советуют?

[identity profile] mura-vey.livejournal.com 2004-09-22 11:29 am (UTC)(link)
Я всегда перед началом добавления текста в файл присваиваю ему следующий номар при сохранении того же имени (otchet_modality07, otcht_modality08), а когда работа закончена присваиваю ему же какое-нибудь финальное название (otchet_modality_all, otchet_modality_final) и т.п. таким образом, когда у меня встречаются версии одного файла я всегда знаю с какой я работала последний раз. Если какая-то часть файла, вдруг поселилась в отдельном файле, я называю ее с сохранением начала файла, а дальше идет подхахактеризация (otchet_modality_literature, syntax_problem_set_ex7) и т.п. В результате сразу видно, кусочек чего это, и в какое место его вставлять.

[identity profile] max-ushakov.livejournal.com 2004-09-22 11:41 am (UTC)(link)
1. CVS (иногда не хватает организованности -- завести в CVS/svn модуль, да делать commit вовремя...)
2. visual diff (недавно вот нашёл meld)
3. для нескольких наборов файлов, например, запусков программы -- поддиректории с именами вроде 040922/{1-comment1,2-comment2}
4. для версий одного файла -- имена вроде prefixes-2004-04-33.tex

И большое спагетти из всех четырёх методов понемногу :)

Вот сейчас сюда придёт Беркгаут, и тотчас всё объяснит.

[identity profile] xenophont.livejournal.com 2004-09-22 02:36 pm (UTC)(link)
О, какая прекрасная и полезная поднята тема!

[identity profile] sorotokin.livejournal.com 2004-09-22 03:26 pm (UTC)(link)
[livejournal.com profile] gogabr плохого не посоветует. Я думаю, version control в любом виде, особенно для текстовых файлов и особенно если есть паралельная работа в нескольких направлениях. Не нравится CVS, попробуй чего другое. Обычный rcs вполне хорош; если пользуешь emacs, то он с ним интегрирован. На работе у нас perforce - он хорош тем что у него plug-inы ко всему на свете (но в основном не для линукса). По моим наблюдениям, люди быстро зацепляются на version control, если он интегрирован с их программами. Но вообще-то, меня всегда поражает сколько упорства и времени люди тратят чтобы не пользоваться version controlом.

[identity profile] besm6.livejournal.com 2004-09-27 09:27 am (UTC)(link)
Для начала заметим, что для использования CVS достаточным поводом будет, чтобы в проекте хотя бы чего-то было более одного - файлов, разработчиков или компьютеров. В данном случае, отчетливо, компьютеров.

Задачу переноса данных на машину только с неработающим дисководом я не рассматриваю - решение там очевидно, но неинтересно... Переписать на бумажку, если кто не понял... А задачу бардака я решаю просто - если компьютеров в проекте более одного, CVS обязателен (исключение - если компьютеров два и один из них - пальм, тогда как бы репозиторием является десктоп, а все прочее - точно так же). Затем - я помню, где у меня текущая рабочая версия текущей задачи (ну, двух-трех, если я за день успел заняться двумя-тремя), и я не переключаюсь с одной задачи на другую, не закоммитившись. Если для коммита приходится что-то носить на внешнем носителе - я помню, что вот эту штуку надо первым делом с этого носителя взять и закоммитить. Поскольку таких штук больше 3 одновременно в норме не бывает (а если бывает, то в том же пальме есть todo list), то тут бардака не происходит.

Что до ворда - с ним ровно одна проблема. diff не посмотришь. Для смотрения диффа рекомендуется патентованный метод - перед каждым коммитом catdoc его (в крайнем случае save as text), и полученный текст закоммитить рядом. Там не будет отражена правка в оформлении, но ее дифф обычно смотреть и не нужно - если она важна, про это было записано в commit log.

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

Что же до "из пушки по воробьям" - в типичном случае с cvs работать просто, а в нетипичном - можно. Вторым он выгодно отличается от RCS, который в многокомпьютерном варианте применим с трудом, а в многофайловом неприменим вообще.

И сразу: для межкомпьютерной синхронизации используется rsync. Поверх ssh или флоппинета.