Хм, Arraylist может использоваться в случаях, любят, следует, я предполагаю:
Для, например, необходимо импортировать и доступ все элементы в списке контактов (размер которого неизвестен Вам)
Несколько репозиториев, Forests и SubRepos - все это варианты одной и той же идеи. Forests и SubRepos просто упрощают управление проектами, которые также используют самые последние версии других проектов, они не решают вашу основную проблему, заключающуюся в том, что вы теряете историю файлов при перемещении их между проектами.
На мой взгляд, ваш Лучше всего поместить все каталоги в один и тот же репозиторий и дождаться, пока функция Mercurial разрешит проверку подкаталогов. Возможность подкаталога - это одна из тех вещей, о которых заботится команда Mercurial, но сделать это тоже нетривиально, поэтому это еще не сделано. Я знаю внутреннее устройство Mercurial, и это определенно выполнимо, просто много работы.
Второй лучший вариант, хотя я считаю его действительно уродливым, - это идея именованных ветвей, о которой вы упомянули. Однако у вас по-прежнему будет очень странная операция слияния, которую нужно выполнять всякий раз, когда вы хотите копировать файлы между ветвями. Вы выполните следующие действия:
hg update -C project1
HGMERGE = / bin / false hg merge -r project2
hg revert -a --no-backup -r project1
hg revert --no-backup -r project2 path / to / file / in / project2.txt
hg mv path / to / file / in / project2.txt project1 / file / path / project2.txt
hg resolve -am
hg commit -m «Слияние для копирования project2.txt в project1.»
Как я уже сказал, очень уродливо. И это может хорошо работать только в hg 1.3, поскольку я знаю, что некоторые важные ошибки во взаимодействии возврата, слияния и разрешения были исправлены совсем недавно. (IMHO, я подозреваю, что Ubuntu намеренно отстает от версий систем управления версиями, отличных от bzr.)
Как часто вы действительно ожидаете копирования файлов между проектами? Почему это случилось? Вы уверены, что потерять историю - это так плохо?
Я проделал нечто подобное в Subversion для пары собственных проектов, но, по моему опыту, мое первоначальное представление о том, к какому проекту действительно принадлежит что-то, было обычно правильно, а когда это не сохраняло историю, не так ли?