2008-09-18 10 views
43

Für meine Schularbeit mache ich viele Computer umzustellen (von Labors zu meinem Laptop zur Bibliothek). Ich würde diesen Code gern einer Versionskontrolle unterstellen. Das Problem ist natürlich, dass ich auf den Computern, die ich verwende, nicht immer zusätzliche Software installieren kann. Gibt es irgendeine Art von Versionskontrollsystem, das ich auf einem USB-Stick behalten kann? Ich habe eine 2-GB-Festplatte, um das anzubringen, aber ich kann eine größere bekommen, wenn nötig.Versionskontrolle auf einem 2GB USB-Laufwerk

Die Projekte, die ich mache, sind nicht besonders groß FYI.

EDIT: Dies muss unter Windows funktionieren.

BEARBEITEN II: Bazaar endete, was ich wählte. Es ist noch besser, wenn Sie mit TortoiseBzr gehen.

Antwort

13

könnten Sie verwenden Portable Python und Bazaar (Bazaar ist ein Python-app). Ich benutze Bazaar wegen meiner extremen Einfachheit gerne für meine eigenen Projekte. Außerdem kann es tragbar sein, da Python portabel sein kann. Sie müssen nur die Abhängigkeiten in Ihrer Portable Python-Installation installieren.

10

Die beste Antwort für Sie ist eine Art von DVCS (populäreren sein Git, Mercurial, Darcs, Bazaar ...). Der Grund dafür ist, dass Sie eine vollständige Kopie des gesamten Repository auf jedem Computer haben, den Sie verwenden. Ich habe diese Systeme nicht persönlich verwendet, daher empfehlen andere am besten einen DVCS mit geringem Platzbedarf und guter Cross-Plattform-Kompatibilität.

8

Ich würde git verwenden. Git-Repos sind wirklich klein und benötigen keinen Daemon. Sie können wahrscheinlich cygwin oder msysgit auf Ihrem Flashdrive installieren.

Edit: here are some instructions for installing cygwin on a flash drive

+1

git auf Fenster ziehen ist zu viel Aufwand in com mit Mercurial oder Bazaar. Ich verwende Git unter Linux und Mercurial unter Windows. – Valentin

+1

@Valentin: Ich würde nicht zustimmen. Git funktioniert problemlos unter Windows ohne jegliche Installation (z. B. von einem USB-Laufwerk). Beachten Sie auch, dass msys Git kürzlich "PortableGit" auf ihrer Google Code-Site (http://code.google.com/p/msysgit/) integriert hat. –

3

Sie könnten die Subversion-Binärdateien dort platzieren - sie sind nur 16-Megabyte, also haben Sie auch genügend Platz für einige Repositories. Sie können die offiziellen Binärdateien über die Befehlszeile verwenden oder ein grafisches Tool (wie TortoiseSVN) auf das Repository-Verzeichnis verweisen. Wenn Sie sich schick fühlen, können Sie das Laufwerk so einrichten, dass die SVNSERVE-Anwendung automatisch gestartet wird. So wird jeder Computer zu einem leichten Subversion-Server, sobald Sie das Laufwerk anschließen.

Ich fand einige Anweisungen für diesen Prozess here.

21

Ich mache das mit Git. Einfach gesagt, ein Git-Repository Ihres Verzeichnis erstellen:

git-init 
git add . 
git commit -m "Done" 

den Stick einlegen, CD in das Verzeichnis auf sie (ich habe eine große ext2-Datei ich mit -o loop Montage), und zu tun:

git-clone --bare /path/to/my/dir 

Dann nehme ich den Stick zu einem anderen Computer (zu Hause usw.). Ich kann direkt am Stick arbeiten oder nochmal klonen. Geh zu einem Verzeichnis auf der Festplatte und:

git-clone /path/to/stick/repos 

Wenn ich mit Veränderungen fertig bin, kann ich ‚git push‘ zurück zu bleiben, und wenn ich wieder bei der Arbeit bin, ich git push 'einmal Um die Änderungen von Stick zu Arbeitscomputer zu verschieben. Sobald Sie dies eingerichtet haben, können Sie 'git pull' verwenden, um nur die Änderungen zu holen (Sie müssen nicht mehr nur beim ersten Mal klonen), und 'git push', um die Änderungen in die andere Richtung zu übertragen.

Das Schöne daran ist, dass Sie alle Änderungen mit "git log" sehen und sogar einige unabhängige Arbeit synchron halten können, wenn es sich in der Zwischenzeit an beiden Orten ändert.

Wenn Sie die Befehlszeile nicht mögen, können Sie grafische Werkzeuge wie gitk und git-gui verwenden.

+0

Ich benutze Windows leider. Ich habe das in die Tags geschrieben, aber ich denke, ich hätte es auch in Frage stellen sollen. –

+7

Git funktioniert unter Windows ziemlich gut, sogar grafische Tools wie Git-GUI und Gitk funktionieren so gut wie unter Linux. Ich empfehle die Verwendung von msysgit port von http://code.google.com/p/msysgit/ –

+0

Danke Milan für kurze, aber sinnvolle Schritte. –

1

Subversion würde irgendwie funktionieren. Siehe thread

Persönlich bevorzuge ich es, alles auf einem einzigen Computer und Remote Desktop in es zu halten.

18

Darcs ist ideal für diesen Zweck.

  • Ich kann nicht für andere Plattformen bürgen, aber unter Windows ist es nur eine einzige ausführbare Datei, die Sie auf dem Laufwerk halten konnte.
  • Am wichtigsten ist, seine interaktive Kommandozeilen-Schnittstelle ist fantastisch und sehr schnell wird intuitiv (ich jetzt wirklich vermissen interaktive Commits in jedem VCS, die ihnen fehlt) - Sie nicht viele Befehle wie Teil auswendig lernen müssen von Ihrem normalen Workflow entweder. Diese ist der Hauptgrund, warum ich es über Git für persönliche Projekte verwende.

Einrichten:

darcs init 
darcs add -r * 
darcs record -am "Initial commit" 

ein Repository auf Ihrem Labor Maschine erstellen:

darcs get E:\path\to\repos 

prüfen, was Sie geändert haben:

darcs whatsnew  # Show all changed hunks of code 
darcs whatsnew -ls # List all modified & new files 

interaktiv einen neuen Patch zu schaffen von Ihren Änderungen:

darcs record 

Interaktive Patches in das Repository auf dem Laufwerk schieben:

darcs push 

Es ist bekannt ist für große Projekte, langsam zu sein, aber ich habe noch nie irgendwelche Probleme mit der Leistung des unteren bis mittleren persönliche Projekte I‘ Ich habe es benutzt.

Da keine Installation erforderlich ist, können Sie sogar die Festplatte auslassen und einfach die Binärdatei aus dem Internet holen - wenn ich meine Festplatte vergessen habe, ziehe ich eine Kopie des Repositorys aus dem Spiegel I halten auf meinem Webspace, dann erstellen und E-Mail-Patches mich als Dateien:

darcs get http://example.com/repos/forum/ 
# Make changes and record patches 
darcs send -o C:\changes.patch 
3

ich Subversion auf meinem USB-Stick verwenden, werden die offiziellen Binärdateien arbeiten direkt aus dem Laufwerk. Das Problem mit diesem Trick besteht darin, dass Sie auf eine Befehlszeile zugreifen müssen, damit dies funktioniert oder Batchdateien ausgeführt werden können. Natürlich synchronisiere ich die Dateien auf meinem USB-Stick mit einem Server, für den ich bezahle. Sie können das Repository immer auf einem Desktop hosten (verwenden Sie das Protokoll file: ///), wenn Sie keinen Hosting-Speicherplatz im Web erhalten möchten.

+0

Während die Integration von Tortisse nicht funktionieren würde, ohne installiert zu sein. Möglicherweise können Sie die Benutzeroberflächen von einem USB-Stick aus verwenden. Hab das nicht selbst ausprobiert, aber es mag einfacher sein als SVN-Kommandozeilen. –

3

Ich werde gelyncht für diese Antwort, aber es funktioniert unter Windows: RCS.

Sie einfach ein Verzeichnis RCS in jedem der Verzeichnisse mit Ihrem Code. Wenn die Zeit kommt, um die Dinge zu überprüfen, ci -u $FILE. (Binär-Dateien benötigen Sie auch rcs -i -kb $FILE vor dem ersten Check auszuführen.)

Im Innern des RCS Verzeichnis ein Bündel von ,v Dateien sind, die mit CVS kompatibel sind, sollten Sie wünschen, ein „Upgrade“ zu diesem einem Tag (und von dort zu irgendeinem der anderen VCS-Systeme andere Plakate erwähnt). :-)

0

bitnami stack subversion ist einfach zu installieren. Sie können versuchen, so zu xampp mit portableapps.com und Subversion zu installieren.

5

Nur um eine zusätzliche Ressource hinzuzufügen Subversion on a Stick. Ich habe es einfach auf meinem 4GB USB Drive eingerichtet, ziemlich einfach und schmerzlos.

Dachte ich bin jetzt sehr versucht, Bazaar zu versuchen.

Update: Ich habe PortablePython auf meinem USB-Laufwerk eingerichtet, einfach, aber bekommen Basar auf ... Ich gab auf, eine Abhängigkeit nach der anderen, und wie ich Svn arbeiten.
Wenn jemand von einem einfachen tragbaren Installer weiß, wäre ich dankbar.

1

Flash-Speicher und Versionskontrolle scheint nicht eine gute Idee in meinen Ohren. Ich befürchte, dass die Speicherkapazität bald erschöpft sein wird, vor allem, wenn Sie vielfache Versionskontrolloperationen verwenden, die viele kleine Diskettenoperationen (Zusammenführen, Hin und Her, usw.) ausführen.

Stellen Sie zumindest sicher, dass Sie das Repository so oft wie möglich manuell sichern, falls das Laufwerk ausfallen sollte.

+0

Sie würden das denken. Da die Versionskontrolle jedoch auf menschlicher Ebene stattfindet (ich checke nicht oft pro Sekunde ein), ist dies in der Praxis kein Problem. –

+0

Ich bezog mich nicht auf die Leistung, sondern auf die Lebensdauer und Qualität einiger schlechter Flash-Speicher. –

+0

Dies ist nicht 1985. Neuere Flash-Treiber werden Daten verschieben, um mehr Zyklen pro Makrozelle zu erhalten. Außerdem hat jede Zelle typischerweise mehr als 10k Zyklen. Ich glaube nicht, dass ein einfacher Aufbewahrungsort für Hausaufgaben ein so großes Problem verursacht. –

4

Ich empfehle Fossil http://www.fossil-scm.org/

  • Befehlszeile
  • DVCS
  • Cross-Plattform (und leicht zu kompilieren)
  • 'autosync' Befehl, um die wesentliche Aufgabe der Synchronisierung beinhaltet bis zu ein Backup einfach.
  • Backup-Server-Konfiguration ist ein Kinderspiel.
  • leicht
  • sehr hilfreich Community
  • web ui mit Wiki und Bugtracker aufgenommen lernen/verwenden.
  • 3.5Mb, einzelne ausführbare
  • eine SQLite-Datenbank als Repository
1

Ich bin mit GIT nach Mailand Babuškov Antwort:

(1) erstellen Repository und commit (auf Büro-PC)

mkdir/home/yoda/Projekt & & cd/home/yoda/Projekt

git init

git add.

git commit -m "Done"

(2) USB-Stick einsetzen und einen Klon des Repository

cat/proc machen/Partitionen

mount -t ext3/dev/sdc1/mnt/usb

git clone --bare/home/yoda/Projekt/mnt/usb/Projekt

(3) zu Hause den USB-Stick nehmen und ein Klon des Repository zu Hause

cat/proc/partitions

mount -t ext3/dev/sdc1/mnt/usb

git clone/mnt/usb/Projekt/home/yoda/Projekt

(4) Push verpflichtet vom PC zu Hause zurück zu USB-Stick

mount -t ext3/dev/sdc1/mnt/usb

cd/home/yoda/Projekt

git push

(5) USB-Stick ins Büro nehmen und Push verpflichtet vom Stick auf Büro-PC

mount -t ext3/dev/sdc1/mnt/usb

cd/mnt/usb/Projekt

git push

(6) ziehen verpflichtet vom Büro-PC auf USB-Stick

mount -t ext3/dev/sdc1/mnt/usb

cd/mnt/usb/Projekt

git

(7) Zug begeht vom USB-Stick zu Hause PC

mount -t ext3/dev/sdc1/mnt/usb

ziehen

cd/home/yoda/Projekt

git