предложения по использованию PATH для исполняемых файлов с контролем версий (Mercurial) - PullRequest
0 голосов
/ 13 ноября 2009

Итак, я довольно новичок в управлении версиями, но я пытаюсь использовать Mercurial на моем Mac, чтобы организовать большую программу анализа данных Python. Обычно я клонирую свой основной репозиторий, немного подправляю код клона и запускаю код на своих данных. Если изменения были успешными, я фиксирую их и в конечном итоге возвращаю изменения в мой основной репозиторий. Я предполагаю, что это довольно типичный рабочий процесс под контролем версий.

Моя проблема в том, что мой код запускается из командной строки, с несколькими аргументами командной строки, которые ссылаются на файлы данных в текущем рабочем каталоге (и у меня есть много таких каталогов, в которых мне нужно протестировать код, и они вне контроля версий). Поэтому перед использованием Mercurial я просто держал свой код в одном каталоге ~ / bin, который был частью моей переменной окружения PATH. Теперь с контролем версий мне нужно (1) после каждого редактирования скопировать исполняемые файлы моего текущего клона в каталог ~ / bin перед запуском кода в командной строке или (2) каждый раз, когда я клонирую свой код, добавлять свои текущий путь клона к PATH, или (3) указывайте весь / path / to / my / Programs в командной строке каждый раз, когда я запускаю код. Все это не очень удобно, и я чувствую, что должно быть элегантное решение, которого я просто не знаю. Может быть, что-то с крючками Mercurial? Я хочу, чтобы мой код под редакцией работал в командной строке между коммитами, так что это, похоже, исключало зацепки, но я не знаю ... Большое спасибо за любые предложения!

Ответы [ 2 ]

0 голосов
/ 15 ноября 2009

Ответ Ry4an хорош, если вы хотите продолжить работу с несколькими клонами. Но также стоит помнить, что Mercurial достаточно мощный, чтобы предоставить вам большую часть преимуществ этого рабочего процесса, не выходя из единственного «основного» репо. То есть вы можете создавать ветви (именованные или анонимные) для экспериментальных функций, легко «обновлять hg» до любой версии кода, которую вы хотите протестировать, даже использовать расширение mq для удаления веток, которые не сработали.

0 голосов
/ 13 ноября 2009

То, что я делаю в таком случае, это установка двух глубоких цепочек символических ссылок на мой двоичный файл в моем текущем клоне. Например, у меня будет:

/usr/bin/myappname

, который является символической ссылкой на

/home/me/repos/CURRENT/bin/myappname

где / home / me / repos / CURRENT - это символическая ссылка на мой текущий рабочий клон, например:

/home/me/repos/myproject-expirment

После настройки исходной символической ссылки / usr / bin / myappname все, что мне нужно сделать, это обновить символическую ссылку CURRENT при создании нового клона, над которым я работаю.

...