Re: замена cvs (было: локальная VCS)
Kirill A. Korinskiy wrote:
E> на что рекомендуете обратить внимание?
tla+xtla
darcs+darcsum (мне не удалось сдружить с utf-8 комментариями к комитам)
bzr+bzr-mode(?)
hg+..?
если столько времени потрачено на исследования, может покажете какими
командами можно сделать перечисленные действия в упомянутых vcs?
commit/update везде похожи, а вот что посложнее как раз и интересно.
повторю еще раз:
есть 2 ветки - A и B, в A интересующие нас изменения были внесены между
ревизиями An и Am (после этого возможно были закоммичены ещё какие-то
изменения).
1. посмотреть разницу в ветке между ревизиями An и Am (или между двумя
датами).
в cvs можно или посмотреть в head между двумя датами или же в любой
ветке между двумя ревизиями одного файла (каждый файл имеет независимый
номер версии).
2. накатить изменения между An и Am на ветку B;
3. отменить изменения в ветке A, произошедшие между ревизиями An и Am.
в общем-то наверное всё, что мне нужно от vcs.
с 1 наверное в системах с атомарным коммитом проблем нет (в cvs можно
эмулировать такое поведение, добавляя на кажый коммит новый тэг); 2 и 3
можно сделать натравливая patch на получившийся diff - но наверное vcs
должна более интеллектуально конфликты обрабатывать?
ещё пожелания по мелочам (необязательные):
- что-то типа cvs2cl иметь;
- макроподстановки типа $Id$ поддерживать;
- уметь не просто unified diff, а немного настраиваться - я например
обычно diff -pub использую;
- пропускать текст через фильтры при коммите (commitinfo в cvs)- я
например indent с своим набором опций использую (коммичу обычно
достаточно небольшими кусками - проще написать и отладить их не заботясь
о форматировании) и dos2usnix (на случай если с винды коммичу). тут
наверное только svn, как прямая наследница cvs - но что-то она мне
несимпатична.
Reply to: