2010-05-26 5 views

Antwort

3

Eine schnelle Google-Suche gefunden gitfs:

gitfs ein FUSE-basiertes Dateisystem für in git Repositories gespeichert mit Quellbäumen arbeiten. Das letztendliche Ziel ist es, eine bequeme Möglichkeit zu bieten, mit vielen Zweigen und Patches zu arbeiten. Derzeit ist nur eine sehr grundlegende Funktionalität implementiert - Lesezugriff auf die vorhandenen Tags und Objekte.

Es gibt wahrscheinlich andere (aktivere) Projekte, die ähnliche Funktionen bieten (sowohl für Git als auch für andere VCS).

1

Grundsätzlich ist jedes hg Befehl würden Sie eine beliebige Version können zu handhaben - mit -r in hg ist wie @@ in Clearcase die ganze Zeit mit. hg "only" benötigt -r, da Dateien nicht unabhängig vom Repository versioniert werden. Bei einer Datei und einer Repo-Version ist -r daher eindeutig.

Wenn Sie eine Datei bearbeiten möchten, ist das Piping hg cat genauso wie das Lesen von [email protected]@/branch/ver - sie bieten denselben (schreibgeschützten) Zugriff auf die Daten.

Wenn Sie die Bequemlichkeit dynamischer Ansichten über MVFS in Mercurial wollen, ist das ein ganz anderes Problem, und Sie können es nicht wirklich tun (Sie können es schreibgeschützt über NFS tun, aber natürlich gibt es dort keine Versionierung).

5

Zuerst [email protected]@/main/5 ist ein extended pathname, die man eigentlich nur in dynamic views erkunden.

Zweitens können Sie schnell access an older version of a file in Git:

git show REVISION:path/to/file 

(mit dem Pfad der Datei der git-Repository immer von der Wurzel zu sein)
Und Sie können git show für andere Nutzung (see the file as it is in another branch zum Beispiel verwenden)

Weitere Informationen finden Sie unter "How to retrieve a single file from specific revision in Git?".


Im Begriff der dynamischen Erforschung einer Revision basierten Dateisystem, wäre das Äquivalent von hgfs für Git:

  • gitfs FUSE-basierte Dateisystem für in git gespeicherten Quellbäume Arbeits Repositories.

figfs (der Dateisystem-Schnittstelle zu Git Filesystem), das auf gitfs erweitert.

Das Repository wird als Dateisystem dargestellt, das die gleichzeitige Anzeige mehrerer Versionen und Zweige des Projektcodes ermöglicht, ohne dass der Arbeitsbereich des Benutzers neu konfiguriert werden muss.

Um einen fi-Dateisystem-Service, verwendet fi gfs den Filesystem in User space (FUSE)

Vom work of Reilly Grant

fuse

A FUSE Anwendung eines fi-Dateisystem als User-Space-Prozess implementiert werden kann.
Die Anforderung einer Anwendung wird über die VFS-Schicht und an den FUSE-Treiber übergeben, der die Anforderung an den Dateisystemdämon user space sendet.
Figs greift dann über das normale Dateisystem auf das Git-Repository zu und gibt die resultierenden Daten an die Anwendung zurück.

+1

Basierend auf Gregs Kommentar konnte ich http://www.ueber.net/code/man/hgfs/tip/man/4/hgfs.html finden. das macht etwas ähnliches für mercurial. Mein Grund dafür, die Dateisystemschnittstelle gegenüber 'hg cat' und ähnlichen Befehlen zu verwenden, besteht darin, dass diese Befehle einen zusätzlichen Schritt zum Extrahieren der Revision erfordern, die außerhalb der IDE ausgeführt werden muss. z.B. Wenn ich ein Schema mit xfig zeichne und die 5. Revision mit einer Dateisystem-Schnittstelle laden möchte, kann ich eine direkte Datei-> open-Operation machen, während 'hg cat' einen zusätzlichen Schritt benötigt, um die Revision vor der Verwendung auszugeben. – Vijay

+0

@ Vijay: verstanden. Ich habe meine Antwort vervollständigt und das Äquivalent von hgfs für git: figfs hinzugefügt. – VonC

+0

Das OP hat kein Betriebssystem angegeben, und Sie haben vergessen zu erwähnen, dass FUSE (und so hgfs, gitfs und figfs) nur Linux ist. Nicht jeder läuft Linux :) –