SVN 仅从存储库更新特定文件

2024-02-12

这个存储库有很多很多 GB,其中 99% 是我不需要的。我想做的是仅获取/更新 *.js *.css *.html.doc和 *.pdf 文件。其余的都是巨大的,我想留在那里,而不是浪费时间和磁盘空间,因为我不需要查看它们,而且我永远不会更改它们。

我意识到 svn:ignore 功能不是我需要的,它只与签入的内容和忽略的内容相关。我还知道 SVN 中没有我可以利用的参数或设置来执行我想要的操作。

但我发现,如果我右键单击 SVN 文件夹并选择“检查修改”,然后在下一个对话框中选择“检查存储库”,那么我会得到我没有的文件的完整列表。然后,将“扩展名”添加到列标题并按扩展名排序就很容易了。然后我可以向下滚动并找到分组在一起的所有 .js 文件。

这就是我的#fail 发生的地方。如果我右键单击ONEJS 文件并选择 UPDATE,然后它将删除该文件并创建支持该文件所需的子目录层次结构。这正是我想要发生的事情。此时我跳了起来,以为我已经找到了我需要的东西。这并不是一个麻烦的过程,我可以忍受。然后我选择所有 JS 文件并右键单击。我注意到的第一件事是出现的上下文菜单选项较少,这很麻烦。但更新选项就在那里,所以我不太担心。我选择“更新”,然后单击“确定”,就像我之前尝试过的对单个 JS 文件所做的那样。接下来发生的事情却很奇怪。它不会重复对单个文件发生的过程,而是对所有选定的文件重复该过程,它会针对每个文件显示“已跳过”并报告已完成。这种情况每次都会发生。我可以手动完成每个文件(这需要几个小时),但我不能一次完成所有文件。

帮助。我在虚拟机中执行此操作,我不想只是为了获取不需要的文件而将其大小增加四倍。


很抱歉迟到的答复,发生了很多事情,我也不得不花一些时间来完成这项工作。正如您已经指出的,没有直接的方法来执行“仅扩展签出”。但有一种方法可以使用Subversion 命令行工具 http://sourceforge.net/projects/win32svn/以及我编写的批处理脚本。它的工作原理是使用稀疏目录 http://svnbook.red-bean.com/en/1.8/svn.advanced.sparsedirs.htmlSubversion 的功能,可让您指定结账应具有的“深度”。通过指定深度empty,会创建一个空的工作副本,并且不会实际检出任何文件或文件夹。然后你可以update将您选择的文件和文件夹从存储库直接复制到该工作副本中。这允许创建您所追求的“仅扩展签出”。

我编写的脚本允许您在EXTENSIONS变量之间用空格分隔。中指定的存储库SVN_ROOT然后扫描变量以查找具有给定扩展名的文件。然后,它继续构建一个工作副本,该副本仅包含支持具有您指定的扩展名的文件所需的目录结构(使用上述方法)。我对其进行了相当多的测试,希望它能满足您的需求。

Note:根据存储库的大小和与指定扩展名匹配的文件数量,创建工作副本的过程将需要一些时间。

@ECHO OFF
SetLocal EnableDelayedExpansion

SET SVN_ROOT=svn://your-repository.com/svn/your-project
SET EXTENSIONS=.js .css .html .doc .pdf
SET ROOT_DIR=%CD%

ECHO Listing repository...
svn -R ls %SVN_ROOT% > _files-all.txt

REM filter list for specified extensions
FOR %%H IN (%EXTENSIONS%) DO (
    TYPE _files-all.txt | FINDSTR /I /R "%%H$" >> _files-selected.txt
)

REM initial checkout in empty mode
svn co %SVN_ROOT% --depth empty .

FOR /F "tokens=*" %%I IN (_files-selected.txt) DO (
    REM "escape" path elements by wrapping them into double quotes
    SET TMP_PATH=%%I
    SET TMP_PATH="!TMP_PATH:/=" "!"
    ECHO Fetching %%I
    REM iterate over path elements
    FOR %%J IN (!TMP_PATH!) DO (
        REM "unescape" each path element again
        SET PATH_ELEM=%%J
        SET PATH_ELEM=!PATH_ELEM:~1,-1!
        REM if we don't have this element, fetch it from repository
        IF NOT EXIST "!PATH_ELEM!" (
            svn up %%J --depth empty 2>&1 > nul
        )
        REM if the element is a directory, enter it
        IF EXIST %%~sJ\NUL CD %%J
    )
    CD !ROOT_DIR!
)

REM clean up temporary files
DEL _files-all.txt _files-selected.txt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SVN 仅从存储库更新特定文件 的相关文章

  • 有没有办法删除 FILE_FLAG_DELETE_ON_CLOSE?

    在我的应用程序中 我想使用 FILE FLAG DELETE ON CLOSE 打开一个临时文件 然而 在某些情况下 临时文件需要保留并且非常大 我想删除打开的句柄上的 FILE FLAG DELETE ON CLOSE 属性 这可能吗 复
  • f.read 为空

    我在解释器中完成这一切 loc1 council council1 file1 open loc1 r 此时我可以执行 file1 read 并将文件的内容作为字符串打印到标准输出 但如果我添加这个 string1 file1 read 字
  • 如何将 git-svn 与 svn+ssh url 一起使用

    我喜欢在cygwin中使用git svn clone使用我们公司 svn 存储库的命令 这个的网址是svn ssh svn
  • 您如何构建 SVN 存储库? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 什么是更好的 A server 1080 repo projectA trunk branches branch1 branches branc
  • 设置可视化SVN服务器后无法浏览存储库

    我在 Windows 7 x64 系统上安装了 VisualSVN Server 2 1 7 我已使用所有默认选项 安装路径 C Program Files x86 VisualSVN Server 存储库路径 D Repositories
  • 是否可以追溯添加如果执行 svn cp 而不是 cp 时就会存在的历史记录?

    我有一个项目 其中一个目录最初 数百次提交前 从另一个目录逐字复制 但未使用 svn cp 因此历史记录中存在断开连接 现在是否可以在初始复制点连接两个目录 还是太晚了 让我猜猜你在说什么 目录foo处于颠覆状态 在修订版 100 中 有人
  • IIS7 和 ARR 作为 Subversion 的反向代理

    我使用 IIS7 和应用程序请求路由扩展来充当 Apache 上运行的 Subversion 的反向代理 代理工作正常 我能够探索服务器 甚至执行 签出 但是 我无法浏览 ASP NET 通常禁止的文件 例如 cs csproj 等 ASP
  • IntelliJ Subversion 需要身份验证对话框

    我正在尝试从颠覆存储库中签出一个项目 我已输入我的信息 例如网址 用户名和密码 我可以看到我的存储库中的文件夹列表 我选择我的项目并选择要签出到的目录 一切似乎都很顺利 我在 结帐选项 中单击 确定 进行结帐 选择 1 7 格式 这就是我正
  • Capistrano 部署擦除数据库?

    我已成功使用 Capistrano 将我的应用程序部署到生产环境 但我不明白如何处理我的数据库 我正在使用颠覆和乘客 当我运行 cap 部署时 新部署会重新启动一切 它会清除添加到数据库中的数据 显然 必须有一个解决方案 但我很惊讶没有在网
  • SVN:您可以仅从本地签出(而不是从存储库)中删除目录吗?

    假设您有一个受 subversion 控制的目录 其中包含一些文件和大量子目录 如下所示 file1 txt file2 txt file3 txt dir1 dir2 dir3 dir4 dirXX 现在您需要文件和一些目录 但不是全部
  • 将文件写入 Web 服务器 - ASP.NET

    我只想将 TextBox 控件的内容写入 Web 服务器目录根目录中的文件 如何指定它 请记住 我正在本地测试这个 它不断地将文件写入我的程序文件 Visual Studio Common IDE目录而不是我的项目目录 这是我假设Web服务
  • 如何只读取文件的第一行

    我已经用谷歌搜索了一段时间 但我找不到只读取文件第一行的函数 我需要读取文本文件的第一行并从中提取日期 Perl 新手 open my file lt filename txt my firstLine lt file gt close f
  • 基于网络的颠覆查看器[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • C - 计算文件中的单词、字符和行数。字符数

    我必须用 C 编写一段代码 输出给定文件中的字符数 行数和单词数 任务看起来很简单 但我现在真的不确定出了什么问题 所以 这是代码 include
  • Subversion 中的版本和项目的良好存储库布局是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们有标准的 Subversion 主干 分支 标签布局 我们有几个针对中长期项目的分支 但到目前为止还没有一个发布版本 这正在快速逼近 我们应
  • 对于独立开发人员来说,通过 file:// 访问 Subversion 存储库有什么缺点吗?

    如果您的开发计算机上安装了 Subversion 并且您不在团队中工作 那么您是否有任何理由应该使用 Subversionsvn协议而不是file 如果您自己在一台机器上工作 那么根据我的经验 使用 file 协议效果很好 即使我的团队在远
  • 获取 Cocoa 中文件的类型

    我成功找到了指定文件的扩展文件类型 JPEG 图像 TIFF 图像等 但我正在寻找更通用的东西 可以对 大类别 中的文件进行分类 如图像 moovies 文本文件等 有没有办法在可可 或 Objective C 中实现这一点 感谢您的帮助
  • 过滤路径列表以仅包含文件

    如果我有一个清单FilePaths 如何过滤它们以仅返回常规文件 即不是符号链接或目录 例如 使用getDirectoryContents main do contents lt getDirectoryContents foo bar l
  • SVN 中的单用户结账

    我想做以下事情 当一个用户正在编辑文件时 SVN 其他用户无法编辑此文件 直到第一个用户提交他的 变化 那就是会有一些 svn 中文件的一种写锁 这在SVN中可能吗 怎么做 是否可以为单个文件或目录 而不是整个存储库 设置此设置 为什么这会
  • 使用 reposurgeon 将 svn repo 转换为 git

    我正在尝试使用 svn repo 转换为 git再生外科医生 http www catb org esr reposurgeon 这是我所做的 有一个具有 svn 名称 gt git 名称映射的 repo map 文件 svnadmin d

随机推荐

  • 无法写入核心转储。默认情况下,Eclipse 中的 Windows 客户端版本不启用小型转储

    当我尝试在 Eclipse 中运行 Android 应用程序时 出现以下错误 但这仅发生在同一工作区中的单个项目中 JRE version 7 0 21 b11 Java VM Java HotSpot TM Client VM 23 21
  • 系统性能计数器的实例名称是否已本地化?

    Windows 中的性能计数器名称是本地化的 因此例如计数器 Processor Total Processor Time在 Windows 的其他语言版本中称为其他名称 这意味着为了找到正确的名称 必须首先找到计数器的索引 然后使用Pdh
  • Play/Akka 与 Java OutputStreams 集成

    我正在写剧本 该应用程序公开了 REST API 允许用户生成 PDF 报告 我受到使用旧 Java API 来生成实际报告的要求的限制 那个库有一个方法generate OutputStream out 即需要一个java io Outp
  • 应用程序扩展“由于内存问题而终止”

    在我的应用程序通知服务扩展中 我执行以下操作 从 Parse 获取数据 在后台 将数据写入文件 将数据保存在 NSUserDefaults 中 在共享容器中 有时我会收到消息 由于内存问题而终止 没有其他信息说明导致此情况的原因 有人有这方
  • J2ME 上的 JDBC 支持

    目前我正在尝试在 Windows Mobile 6 1 设备上运行现有的 java 应用程序 java应用程序是为服务器端开发的并使用JDBC 我的问题是Java应用程序使用java sql DriverManager J9运行时或任何CD
  • 如何使用 Npgsql 管理 SQLserver 到 PostgreSQL 的迁移?

    我正在用 C 编写一个使用 MVC 模式的 Web 应用程序作为实习 我正在尝试将 EntityFramework 创建的 SQLserver 数据库迁移到 PostgreSQL 数据库 我在网上找到了一个解决方案 Npgsql 它似乎完成
  • 按日期分组,不包含时间

    我想知道是否有一种方法可以在计算日期时将 2014 01 26 05 39 29 000 和 2014 01 26 07 45 31 000 分组为一天 我目前有以下代码 仅按其唯一的日期时间对它们进行分组 SELECT ETK Expir
  • Mercurial - 在不知道名称的情况下提取所有远程书签?

    Mercurial 中是否有一个选项允许我提取所有远程书签而无需提前知道它们的名称 On the Mercurial 书签页面 http mercurial selenic com wiki Bookmarks 它提到当我clone一个存储
  • 重定向/返回到 Django 中的同一(上一个)页面?

    当您想要将用户返回到 Django 中的同一页面时 有哪些选项 每个选项的优缺点是什么 我知道的方法 HTTP REFERER 包含先前 URL 的 GET 参数 用于存储先前 URL 的会话数据 还有其他的吗 其中一种方法是使用HTTP
  • 导入错误:没有名为 parse 的模块

    我正在尝试使用 mongodb 和 pymongo 运行 Web 应用程序来提供数据库中的数据 我收到的错误是 ImportError 没有名为 parse 的模块 请参阅以下来自 apache2 Web 服务器的 error log mo
  • CSS:模糊和反转整个页面的颜色

    当同时使用 webkit 过滤器 模糊 和 反转 时 只有模糊有效 如果 模糊 被删除 反转 就可以了 此外 只有 Chrome 和 Opera 响应该代码 有没有办法让它适用于最新的 IE 和 Firefox 版本 body webkit
  • 在重新启动时保留 ASP.NET 应用程序状态

    有什么好方法可以在重新启动后保留 ASP NET 应用程序状态吗 我希望能够设置一些值重新启动应用程序并让它们仍然存在 我想主要针对甚至不需要数据库的小型 一次性 测试 Web 应用程序执行此操作 有没有办法用静态成员和序列化来做到这一点
  • 如何在没有C库的情况下将整数转换为字符?

    在 C 编程练习中 我被要求在不使用 C 库的情况下将 int 转换为 char 知道如何去做吗 编辑 我所说的 int 是内置的 C C 类型 Thanks Cast it char c char i 或者也许你是这个意思 char c
  • 在大屏幕上修复 FireFox 与 Chrome 中的网站大小

    看起来 Gecko Trident 和 Webkit 在高分辨率屏幕上显示网页的方式不同 Chrome 和新 Opera 等 Webkit 浏览器会缩小页面以匹配屏幕的像素分辨率 然而 这可能会使小文本很难阅读 另一方面 Firefox 和
  • -[__NSCFNumber isEqualToString] 错误

    我遇到了这个崩溃 但是 在我的代码中我使用了一个字符串 我现在已经在这一段代码上工作了 2 个小时 但我看不出我错过了什么 有任何想法吗 NSString codeR NSString stringWithFormat object obj
  • Docker 无法在带有 WSL 2 的 Windows 11 上启动

    我正在尝试使用 WSL 2 设置 docker 来运行 Dockerfile 我下载了 Docker Desktop 当我尝试按照快速入门指南进行操作时 出现以下错误 docker error during connect This err
  • 已回答 - JavaFX:单击时 SubScene 不会在 TabPane 内聚焦? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 看起来像是SubScene or TabPane不是我所期望的或者有问题 Because而不是被专注于Subscene 1 when i
  • Chisel3:对 Vector IO 的多位切片的部分分配

    可以对向量 IO 进行部分赋值 如下所示 import chisel3 class example 1 extends Module val io IO new Bundle val in1 Input Vec 4 Bool val out
  • 基于php的文档管理系统[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 谁能推荐一个简单的文档管理系统和一个不错的网络服务界面 我正在考虑使用它来提供从 ajax Web 应用程序上传的文件的元数据管理 我尝试
  • SVN 仅从存储库更新特定文件

    这个存储库有很多很多 GB 其中 99 是我不需要的 我想做的是仅获取 更新 js css html doc和 pdf 文件 其余的都是巨大的 我想留在那里 而不是浪费时间和磁盘空间 因为我不需要查看它们 而且我永远不会更改它们 我意识到