一个2GB的USB驱动器上的版本控制

43

为了我的学校作业,我经常在不同的电脑之间切换(从实验室到我的笔记本电脑再到图书馆)。我想把这段代码放到某种版本控制下。当然问题是我不能在使用的电脑上安装额外的软件。有没有一种版本控制系统可以保存在一个闪存驱动器上?我有一个2GB的驱动器可以用来存储,但如果必要的话我可以得到一个更大的驱动器。

顺便提一下,我正在做的项目并不是特别大。

编辑:这需要在Windows下工作。

第二次编辑:Bazaar最终是我选择的。如果使用TortoiseBzr会更好。

14个回答

21

我使用Git进行这个操作。简单来说,创建一个你的目录的Git仓库:

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

插入U盘,切换到其中的目录(我有一个使用-o loop挂载的大型ext2文件),然后执行以下操作:

将棒子插入电脑,进入其中的目录(我有一个大的ext2文件,在其中使用-o loop挂载),然后执行以下命令:

Insert the stick, cd to its directory (I have a large ext2 file that I mount with -o loop), and run:

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

然后,我将U盘插到其他计算机上(家用电脑等)。我可以直接在U盘上工作,或者再次克隆。进入硬盘上的某个目录,并执行以下操作:

git-clone /path/to/stick/repos
当我完成修改后,我会使用'git push'将更改推回stick上。当我回到工作时,我会再次使用'git push'将更改从stick移动到工作电脑上。设置完成后,您可以使用'git pull'仅获取更改(不需要再次克隆,只需要第一次),并使用'git push'将更改向另一个方向推送。
这种方法的优点是,您可以使用'git log'查看所有更改,并在同时两个地方更改时保持不相关的工作同步。
如果您不喜欢命令行,可以使用图形工具如gitk和git-gui。

很遗憾,我正在使用 Windows。我将这个信息放在了标签中,但我想我也应该把它放在问题中。 - Jason Baker
7
Git在Windows上运作良好,甚至包括Git-GUI和Gitk这样的图形化工具也与Linux上一样好用。我建议使用来自http://code.google.com/p/msysgit/的msysgit端口。 - Milan Babuškov
感谢米兰提供简洁而有意义的步骤。 - Amit Vaghela
1
+1. 简明扼要。我正在寻找有关在USB驱动器上设置存储库步骤的确认 :) - user
1
在下载页面上有便携版:http://code.google.com/p/msysgit/downloads/list 目前最新版本标注为“beta”,但非常稳定。我经常使用它,没有任何问题。绝对推荐使用。 - mit

18

Darcs非常适用于这个目的。

  • 我不能保证在其他平台上的情况,但在Windows上,它只是一个单独的可执行文件,您可以将其保存在驱动器上。
  • 最重要的是,其交互式命令行界面非常棒,并且很快变得直观(我现在真的很想在任何缺乏它们的版本控制系统中使用交互式提交)-您也不需要记住许多命令作为您正常工作流程的一部分。这是我在个人项目中使用它而不是git的主要原因。

设置:

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

在您的实验室计算机上创建存储库:

darcs get E:\path\to\repos

检查您所做的更改:

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

通过交互式方式从您的更改中创建新补丁:

darcs record

与驱动器上的仓库交互地推送补丁:

darcs push

它在处理大型项目时速度较慢,但我在处理小到中等规模的个人项目时从未遇到过性能问题。

由于不需要安装,您甚至可以省略驱动器,只需从网络上获取darcs二进制文件 - 如果我忘记了我的驱动器,我会从我保留在网络空间的镜像中拉取要处理的存储库的副本,然后将补丁作为文件创建并发送电子邮件给自己:

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

13
你可以使用Portable PythonBazaar(Bazaar是一款Python应用程序)。我喜欢在自己的个人项目中使用Bazaar,因为它非常简单。此外,由于Python是可移植的,所以它也可以是便携的。你只需要在Portable Python安装中安装它的依赖项即可。

10

对于你来说最好的选择是某种分布式版本控制系统(流行的包括 GitMercurialDarcsBazaar…)。原因是你在任何使用的机器上都有整个代码库的完整副本。我个人没有使用过这些系统,因此其他人最适合推荐一个占用空间小且具有良好跨平台兼容性的分布式版本控制系统。


8

1
在Windows上使用Git比Mercurial或Bazaar更麻烦。当我在Linux系统上时,我会使用Git;而当我在Windows系统上时,则使用Mercurial。 - Valentin V
1
@Valentin:我不同意。Git在Windows上没有任何安装也可以正常工作(即从USB驱动器中运行)。此外,请注意,msys Git最近开始在其Google Code网站(http://code.google.com/p/msysgit/)上包含“PortableGit”版本。 - Milan Gardian

5
仅添加一份额外的资源Subversion on a Stick。我刚刚在我的4GB USB驱动器上设置了这个,非常简单和轻松。

虽然我现在很想尝试Bazaar。

更新:我在我的USB驱动器上设置了PortablePython,虽然简单,但是让它包含Bazaar是艰难的...... 一个接一个的依赖项,而且我已经在使用svn了。
如果有人知道一个易于使用的可移植安装程序,我会很感激。


4

我推荐使用Fossil http://www.fossil-scm.org/

它包括以下特点:

  • 命令行界面
  • 分布式版本控制系统 (dvcs)
  • 跨平台 (而且易于编译)
  • 'autosync' 命令让备份同步变得轻松
  • 备份服务器配置非常简单
  • 易于学习和使用
  • 社区非常友好并乐于助人
  • 带有维基和缺陷追踪器的Web界面
  • 只有3.5Mb,是单个可执行文件
  • 使用一个SQLite数据库作为代码库

3
你可以把Subversion二进制文件放在那里 - 它们只有大约16兆字节,所以你会有足够的空间来存储一些仓库。你可以从命令行使用官方二进制文件,或者将图形工具(如TortoiseSVN)指向仓库目录。如果你感到高级,那么你可以设置驱动器自动运行SVNSERVE应用程序,使任何计算机在插入驱动器后立即成为轻量级的Subversion服务器。

我在这里找到了一些说明here


3

我把Subversion安装在我的U盘上,只需直接运行官方二进制文件即可。但是这种方法的问题是需要使用命令行或能够运行批处理文件。当然,我会将我的U盘文件同步到自己租用的服务器上。如果你不想花钱购买网络托管空间,也可以将代码库存储在桌面上(使用file:///协议)。


尽管未安装tortoise集成可能无法正常工作,但您可以尝试从USB驱动器中使用部分UI。我自己没有尝试过,但这可能比SVN命令行更容易。 - Matthew Whited

3
我说这个答案可能会招来攻击,但它在Windows下起作用:RCS
你只需在每个代码目录中创建一个名为RCS的目录。当需要检查东西时,运行ci -u $FILE。(二进制文件还要求您在第一次检入之前运行rcs -i -kb $FILE。)
RCS目录中有一堆,v文件,与CVS兼容,如果你希望“升级”到那个系统,(然后从那里转换到其他版本控制系统),就可以使用这些文件。 :-)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接