Другая система управления версиями имеет подобный ClearCase доступ к файловой системе к версиям файла?

В ClearCase, если я работаю над некоторым файлом X и хочу также видеть его предыдущую версию (говорят, что версия 5), это доступно как X@@/main/5. Действительно ли что-то подобно доступный с другим (предпочтительно свободный) системы управления версиями?

Подвижный имеет hg cat и hg co, но они все еще не близко подходят к функции ClearCase выше.

5
задан andyg0808 9 September 2016 в 09:00
поделиться

3 ответа

Быстрый поиск в Google нашел gitfs:

gitfs - это файловая система на базе FUSE для работы с деревьями исходников, хранящихся в git-репозиториях. Конечная цель - предоставить удобный способ работы с большим количеством ветвей и патчей. В настоящее время реализована только базовая функциональность реализована - доступ только для чтения к существующим тегам и объектам.

Вероятно, существуют и другие (более активные) проекты, предлагающие аналогичные возможности (как для Git, так и для других VCS).

3
ответ дан 14 December 2019 в 01:02
поделиться

Практически каждая команда hg , которую вы хотели бы обработать с произвольной версией, может - использовать -r в hg , как постоянно используя @@ в прозрачном кейсе. hg «только» требует -r , потому что файлы не имеют версии независимо от репозитория, поэтому для файла и версии репозитория -r однозначно.

Если вы хотите отредактировать файл, piping hg cat точно такой же, как чтение файла @@ / branch / ver - они предоставляют точно такой же (только для чтения) доступ к данные.

Если вам нужно удобство динамических представлений над MVFS в Mercurial, это совершенно другая проблема, и вы не можете этого сделать (вы можете сделать это через NFS только для чтения, но, очевидно, там нет управления версиями).

1
ответ дан 14 December 2019 в 01:02
поделиться

Во-первых, X @@ / main / 5 - это расширенный путь , который вы действительно можете изучить только в динамических представлениях .

Во-вторых, вы можете быстро получить доступ к более старой версии файла в Git :

git show REVISION:path/to/file

(путь к файлу всегда находится в корне репозитория git)
И вы можете использовать git show для другого использования ( см. Файл, как он находится в другой ветке , например)

См. «Как получить отдельный файл из определенной ревизии в Git?» для получения дополнительной информации.


С точки зрения динамического исследования файловой системы на основе ревизий, эквивалентом hgfs для Git будет:

  • gitfs Файловая система на основе FUSE для работы с исходными деревьями, хранящимися в репозитории git.

figfs (интерфейс файловой системы к файловой системе Git), который расширяется в gitfs.

Репозиторий представлен как файловая система, которая позволяет просматривать несколько версий и ветвей кода проекта одновременно и без необходимости перенастраивать рабочее пространство пользователя.

Чтобы предоставить сервис файловой системы, FUSE использует файловую систему в пространстве пользователя (FUSE).

Из работы Рейли Гранта

fuse

Приложение FUSE позволяет файловой системе быть реализован как процесс в пространстве пользователя.
Запрос приложения передается через уровень VFS в драйвер FUSE, который отправляет запрос демону файловой системы пространства пользователя.
Затем Figfs обращается к репозиторию Git через обычную файловую систему и возвращает полученные данные приложению.

5
ответ дан 14 December 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: