【问题标题】:Version control on a 2GB USB drive2GB USB 驱动器上的版本控制
【发布时间】:2010-09-11 00:04:03
【问题描述】:

为了我的学校作业,我经常更换电脑(从实验室到笔记本电脑再到图书馆)。我有点想将此代码置于某种版本控制之下。当然,问题是我不能总是在我使用的计算机上安装额外的软件。是否有任何类型的版本控制系统可以保存在拇指驱动器上?我有一个 2GB 的驱动器可以安装它,但如果需要,我可以买一个更大的驱动器。

我正在做的项目并不是特别大,仅供参考。

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

编辑二: Bazaar 最终成为了我的选择。如果你和 TortoiseBzr 一起去,那就更好了。

【问题讨论】:

    标签: windows version-control usb-drive


    【解决方案1】:

    我推荐化石http://www.fossil-scm.org/

    包括

    • 命令行
    • dvcs
    • 跨平台(且易于编译)
    • 'autosync' 命令使同步到备份的基本任务变得简单。
    • 备份服务器配置轻而易举。
    • 易于学习/使用
    • 非常有帮助的社区
    • 包含 wiki 和 bugtracker 的 web ui。
    • 3.5Mb,单个可执行文件
    • 一个 sqlite 数据库作为存储库

    【讨论】:

      【解决方案2】:

      Darcs 非常适合此用途。

      • 我不能保证其他平台, 但在 Windows 上它只是一个 您可以保留的可执行文件 在驱动器上。
      • 最重要的是,它的互动性 命令行界面很棒 并且很快变得直观 (我现在真的很怀念互动 在任何缺少它们的 VCS 中提交)- 你 不需要记住很多命令 正常工作流程的一部分。这 是我在 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
      

      【讨论】:

        【解决方案3】:

        根据 Milan Babuškov 的回答,我正在使用 GIT:

        (1) 创建存储库并提交(在办公室 PC 上)

        mkdir /home/yoda/project && cd /home/yoda/project

        git 初始化

        混帐添加。

        git commit -m "完成"

        (2) 插入 U 盘并克隆存储库

        cat /proc/partitions

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

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

        (3) 将 U 盘带回家,并在家里克隆存储库

        cat /proc/partitions

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

        git clone /mnt/usb/project /home/yoda/project

        (4) 将提交从家用 PC 推送回 U 盘

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

        cd /home/yoda/project

        git 推送

        (5) 将 U 盘带到办公室并将提交从 U 盘推送到办公室 PC

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

        cd /mnt/usb/project

        git 推送

        (6) 从办公室 PC 拉取提交到 U 盘

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

        cd /mnt/usb/project

        git 拉

        (7) 从 U 盘拉取提交到家用电脑

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

        cd /home/yoda/project

        git 拉

        【讨论】:

          【解决方案4】:

          只是为了添加一个额外的资源Subversion on a Stick。我刚刚在我的 4GB USB 驱动器上进行了设置,非常简单且无痛。

          觉得我现在很想尝试 Bazaar。

          更新:我已经在我的 USB 驱动器上设置了 PortablePython,很简单,但是在那里可以买到集市...... 我放弃了,一个接一个的依赖,因为我有 svn 工作。
          如果有人知道一个简单的便携式安装程序,我会很高兴。

          【讨论】:

            【解决方案5】:

            在我看来,闪存和版本控制似乎不是一个好主意。恐怕内存很快就会耗尽,尤其是如果您大量使用各种版本控制操作,这些操作会进行许多小磁盘操作(合并、来回恢复等)。

            至少,请确保尽可能多地备份存储库,以防驱动器发生故障。

            【讨论】:

            • 你会这么认为的。然而,由于版本控制发生在人类规模上(我不会在一秒钟内多次检查),这在实践中不是问题。
            • 我指的不是性能,而是一些劣质闪存的寿命和质量。
            • 这不是 1985 年。较新的闪存驱动程序将移动数据以使每个宏单元获得更多周期。此外,每个电池通常有超过 10k 个循环。我不认为一个简单的家庭作业存储库会造成这么大的问题。
            • 我认为它更像是 100k 写入操作,但是如果我们坚持 10k,那么如果您每天执行两次上述过程,即 2xpull 和 2xpush,那么您将获得将近 7 年的使用时间一根 5 美元的棍子。
            • 我认为惠普的警告很有价值。但是版本控制可以被认为是可扩展的。如果您有一个小型应用程序,并按照建议使用常识进行备份,那么闪存驱动器对我来说听起来很棒。
            【解决方案6】:

            我用 Git 做这个。只需为您的目录创建一个 Git 存储库:

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

            插入棒,cd 到上面的目录(我有一个大的 ext2 文件,我用 -o 循环挂载),然后:

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

            然后,我将棍子带到其他计算机(家等)。我可以直接在棒上工作,或者再次克隆。转到硬盘上的某个目录,然后:

            git-clone /path/to/stick/repos
            

            当我完成更改后,我会“git push”返回到棒,当我回到工作岗位时,我再次“git push”将更改从棒移动到工作计算机。设置完成后,您可以使用 'git pull' 仅获取更改(您不再需要克隆,只是第一次)和 'git push' 以另一种方式推送更改。

            这样做的好处在于,您可以使用“git log”查看所有更改,甚至在两个地方同时发生更改时保持一些不相关的工作同步。

            如果你不喜欢命令行,可以使用 gitk 和 git-gui 等图形工具。

            【讨论】:

            • 不幸的是,我正在使用 Windows。我把它放在标签中,但我想我也应该把它放在问题中。
            • Git 在 Windows 上运行得非常好,甚至像 Git-GUI 和 Gitk 这样的图形工具在 Linux 上的运行也一样好。我建议使用来自 code.google.com/p/msysgit 的 msysgit 端口
            • 感谢米兰提供了简短而有意义的步骤。
            • +1。简洁的。我正在寻找确认在 USB 驱动器上设置存储库的步骤:)
            • 在下载页面有便携版:code.google.com/p/msysgit/downloads/list 目前最新版本显示“beta”,但非常稳定。我经常使用它,没有任何问题。绝对可以推荐。
            【解决方案7】:

            bitnami stack subversion 很容易安装。 您也可以尝试使用portableapps.com 和subversion 安装xampp。

            【讨论】:

              【解决方案8】:

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

              【讨论】:

                【解决方案9】:

                我会因为说出这个答案而被处以私刑,但它在 Windows 下有效:RCS

                您只需使用您的代码在每个目录中创建一个RCS 目录。到了签到的时候,ci -u $FILE。 (二进制文件还要求您在第一次签入之前运行rcs -i -kb $FILE。)

                RCS 目录中有一堆,v 文件,它们与 CVS 兼容,如果您希望有一天“升级”到那个(并从那里升级到其他海报提到的任何其他 VCS 系统) . :-)

                【讨论】:

                  【解决方案10】:

                  我在我的拇指驱动器上使用颠覆,官方二进制文件将在驱动器上运行。这个技巧的问题是您需要访问命令行才能使其工作或能够运行批处理文件。当然,我将拇指驱动器上的文件同步到我付费的服务器。如果您不想在网络上获得托管空间,您可以始终将存储库托管在桌面上(使用 file:/// 协议)。

                  【讨论】:

                  • 虽然没有安装 Tortise 集成将无法工作。您可以使用拇指驱动器中的部分 UI。自己没有尝试过,但它可能比 SVN 命令行更容易。
                  【解决方案11】:

                  我会使用git。 Git 存储库非常小,不需要守护进程。您可能可以在闪存驱动器上安装cygwinmsysgit

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

                  【讨论】:

                  • 与 Mercurial 或 Bazaar 相比,Windows 上的 git 非常麻烦。我在 Linux 上使用 git,在 Windows 上使用 Mercurial。
                  • @Valentin:我不同意。 Git 在 Windows 上运行良好,无需任何安装(即从 USB 驱动器)。另请注意,msys Git 最近开始在其 Google 代码网站 (code.google.com/p/msysgit) 上包含“PortableGit”构建。
                  【解决方案12】:

                  您可以将颠覆二进制文件放在那里 - 它们只有 16 兆,因此您也有足够的空间来存放一些存储库。您可以从命令行使用官方二进制文件,或将图形工具(如TortoiseSVN)指向存储库目录。如果您觉得很有趣,那么您可以安装驱动器以自动运行 SVNSERVE 应用程序,在您插入驱动器的那一刻,将任何计算机变成一个轻量级的颠覆服务器。

                  我找到了有关此过程的一些说明here

                  【讨论】:

                    【解决方案13】:

                    Subversion 会起作用。见thread

                    就个人而言,我更喜欢将所有内容保存在一台机器上,并将远程桌面保存在其中。

                    【讨论】:

                      【解决方案14】:

                      对您来说最好的答案是某种 DVCS(流行的是 GitMercurialDarcsBazaar...)。原因是您在使用的任何机器上都拥有整个存储库的完整副本。我没有亲自使用过这些系统,所以其他人最好推荐一个占用空间小且跨平台兼容性好的 DVCS。

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 2012-08-24
                        • 1970-01-01
                        • 2017-09-11
                        • 2011-03-24
                        • 1970-01-01
                        • 1970-01-01
                        • 2018-08-27
                        相关资源
                        最近更新 更多