【问题标题】:Subversion (svn) repository on NTFS partition in Linux?Linux 中 NTFS 分区上的 Subversion (svn) 存储库?
【发布时间】:2013-12-02 19:02:54
【问题描述】:

在 Linux 中使用 svn 时,我可以在 NTFS 分区上创建和使用 svn 存储库吗?也就是说,NTFS 分区上的存储库以及签出和提交到 EXT4 分区。

我意识到 Linux 中的 NTFS 支持是有限的,例如不支持权限和符号链接。这或任何其他限制会导致任何问题吗?

我问的原因是因为我正在考虑 1)将我的存储库移动到我的 Dropbox 文件夹(位于 NTFS 分区上)或 2)将我的存储库移动到记忆棒(可能是 NTFS 分区) .

我的用例非常简单。我是唯一使用存储库的人。目前我的存储库位于 EXT4 上,我要么从存储库所在的同一台机器访问它,要么从第二台机器通过 svn+ssh:// 访问它。但是,如果我选择上述选项之一,访问策略显然会改变。

【问题讨论】:

    标签: linux svn version-control ntfs ext4


    【解决方案1】:

    我会犹豫是否这样做,因为正如您所说,NTFS 分区不支持 Unix 风格的权限。

    Subversion 存储库目录通常是拥有的,并且只能由运行任何正在运行的 Subversion 服务器进程的用户写入。例如,如果您使用的是 Apache httpd,并且您的 Apache 用户名为 httpd,则拥有该存储库的用户是 httpd,这将是唯一的用户对文件和目录具有写权限。

    Windows 机器上的 NTFS 分区确实具有正确设置的权限,因为 Subversion 服务器进程将使用 Windows 权限设置。 Linux 服务器会出现问题。

    NTFS 分区也保留大小写,而不是区分大小写,我不知道这会如何影响在 Linux 机器上运行的 Subversion 服务器进程。同样,Windows Subversion 服务器进程也可以这样做。 Linux 服务器可能有问题。

    不幸的是,我不能肯定地说。我从来没有尝试过,也没有看到它完成。但是,Wandisco Forum 上有一篇文章涵盖了这种情况。用户能够解决他的问题,但我会犹豫说从此以后一切都是啤酒和糖果。

    请说您没有这样做,因此您可以在多个用户之间共享file:// 协议 Subversion 存储库。这是一个大的,肥胖的禁忌。相反,您至少应该运行svnserve 进程,并让用户通过svn:// 协议访问您的存储库。设置svnserve 非常简单——即使是作为Windows 服务。唯一的问题可能是端口 3620(Subversion 服务器端口)被防火墙或路由器阻止。

    【讨论】:

    • 感谢您抽出宝贵时间回答这个问题。我的用例非常简单和具体(单个用户,两台机器)。抱歉,我应该在我的问题中说明这一点(现已更新)。那么,您提到的一些问题可能并不相关?
    • 即使在如此有限的设置中,我仍然建议不要为此应用程序使用非本地文件系统。我还建议不要将您的存储库放在 Dropbox 上。
    • 谢谢。您能否详细说明潜在的问题?
    • 问题源于几件事:首先是钩子可能无法正确执行。其次是没有人可以直接修改实际存储库。有人可能会更改代码,但不会在 Subversion 中记录更改。第三是同时发生的两个提交之间的潜在冲突。如果您是一个用户,一次使用两个不同的系统,那么这些可能不会成为问题。但是,我在这样的设备上使用 Subversion 并且仍然运行 svnserve 只是为了缩短 URL。 svn://localhost/... 而不是 file:///Z:\blah\blah\...
    【解决方案2】:

    Dropbox 多重启动 ntfs 文件夹同步。

    在 vanadium 人早些时候关闭的线程中,我们想要在一个 ntfs 目录中的多个引导系统上同步 Dropbox 的解决方案。钒有一个很好的建议,我稍作调整即可解决。

    1. 您必须在 Windows 或其他系统中安装它并从 Dropbox 设置 Dropbox 文件夹。
    2. 重启进入 Linux 系统。 (我用的是 Ubuntu 18)
    3. 将 Dropbox 安装到 Ext 4 分区。
    4. 打开文件管理器到主文件夹并删除 Dropbox 目录。让这个文件管理器保持打开状态。
    5. 打开一个新的文件管理器到主目录 ntfs 或其他 os Dropbox 文件夹所在的其他目录。
    6. 点击 ctr + h 然后将 Dropbox 文件夹拖到您从中删除它的目录。 (这会为您想要的 Dropbox 文件夹创建一个符号链接快捷方式)
    7. 现在在 Linux 中同步 Dropbox。
    8. 如果您希望 Dropbox 在启动时加载,您必须将分区文件夹设置为在终端启动时自动安装。

    1 - 通过执行以下命令记下要挂载的驱动器的 UUID:

    sudo blkid 2 - 然后编辑 fstab:

    sudo gedit /etc/fstab 3 - 在文件 fstab 的末尾添加:

    UUID=D638F77338F7514B /media/baraldi/win_www ntfs 默认值 0 0 确保 UUID 与您在第一步中记录的内容相匹配

    4 - 重新启动)

    或使用“磁盘”应用程序。

    加载磁盘应用程序(在系统中)并选择要在启动时挂载的文件系统所在的磁盘。

    然后选择该磁盘上的文件系统并单击齿轮(用于配置)。

    从弹出菜单中选择“编辑安装选项”。

    在设置选项上,单击以选中“启动时安装”框。 (当您单击“确定”时,这会将条目添加到 fstab)。

    重新启动,您的文件系统应该可用。

    我同意这里的其他 cmets 关于通过 CLI/文本编辑器手动向 fstab 添加行的观点。如果您花时间查看您的 fstab 文件,它将帮助您了解所做的更改,最终 CLI 方法对您来说会变得更快。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      相关资源
      最近更新 更多