svn - 如何从带外工作区更新中更新 .svn 信息?
问题描述
假设我在带外更新我的工作副本(*详细信息如下) - 我如何让 TortoiseSVN根据服务器 HEAD 检查工作区域的状态并更新本地“修订”信息 而无需传输所有文件(再次)从服务器?现在我的工作流程基本上是回滚带外更新,然后进行 SVN 更新(即使我已经在本地“拥有”文件,它也会重新传输所有文件) - 我更愿意让出-of-band 更新保持不变,只是让 Tortoise 检测到文件确实与服务器匹配......
*详细信息:这可能只是“我从我的同事那里得到一个带有最新更改的 zip 文件(也许因为这比愚蠢的慢速 SVN 更快......)”,所以我有意从问题本身中抽象出实际的方法,但这里是我的特定用例的详细信息。
我曾经git-svn
与 svn repo 交互,但git-svn
不支持 Subversion 属性,或者至少不是很好 - 我试过了,但记得有一些问题(可能还需要更新文件,因为我想svn:global-ignores
在顶层...)。正如链接答案中所建议的那样,一种处理方法是拥有一个完全独立的 svn checkout 来与这些属性进行交互。这似乎很浪费,甚至更慢,所以我将本地git-svn
克隆设置到一个名为的目录trunk
并将其放入 SVN 结帐。现在我可以通过一些管理让两者都“快乐”并从任一方向运行〜更新 - 肯定有一些“陷阱”,但在我们完全过渡到 git 之前它基本上是可以管理的(很快)。
我更喜欢尽可能多地与 git (或git-svn
适用的)交互,所以我通常运行一个git svn rebase
,它从服务器中提取增量更新。如果我想更新 SVN 端(例如,我可以直接 SVN 提交来调整属性),我必须将 git repo 回滚到本地 SVN HEAD 并要求 SVN 更新 repo,然后拉下所有再次文件,这很烦人。我只想运行git svn rebase
,然后让 TortoiseSVN 确认新的工作副本与服务器 HEAD 匹配。
我的第一次尝试是将 git-svn HEAD 留在原处并运行svn update --accept=working
,这样它只会将问题标记为已解决(因为,嗯,HEAD确实匹配 - “相信我,SVN ...”),但这显然导致了重大问题在我的 SVN 方面,当我下次尝试创建 SVN 提交时 - 它不知道发生了什么......
解决方案
推荐阅读
- c++ - 重载 std::array << 运算符
- angular - ng idle keepalive 检测活动
- python - 将图像堆叠为 csv 文件中的行
- vue.js - 如何刷新 v-if 语句中的内容?
- java - 使用 Dagger 为单活动多片段编写 UI 测试
- typescript - 模板文字键具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型
- python - 对于python中的csv文件中不重新启动(执行一次)
- asp.net-core - HandleAuthenticateAsync 被多次调用
- javascript - sveltekit:尽管 URL 已更改,但组件未第二次呈现
- java - 获取应用程序主机名并通过 Java SpringBoot 类登录