问题标签 [subtree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1358 浏览

c++ - 使用 tinyxml2 将文本中的子树插入现有 XML 文件

我不允许创建新标签“tinyxml2”,这就是我使用标签“tinyxml”的原因,但我使用的是“tinyxml2”!

我正在尝试将子树元素插入现有的 XML 文件。我的问题是,在运行程序并检查 XML 文件后,文档中根本不存在子树。在原始代码中,我还在加载和保存文件时检查错误,因此这些功能没有问题,它们工作正常。UserList.NewElement(*name*)我尝试了几种不同的方法,并且使用-function添加单个元素也可以正常工作。现在我想从一个文本变量中插入一个完整的子树......

我的最新方法如​​下所示(简化后不检查LoadFileand SaveFile):

顺便说一句...当我尝试XMLText使用tinyxml2::XMLDocument UserList保存的 XML 文件来解析我的文件时,运行程序后将是空的。这意味着在尝试执行此操作时,既不会保存原始 XML 文档内容,也不会保存新解析的子树。这个事实使我使用了第二个tinyxml2::XMLDocument TestParse。现在保存的 XML 文件包含它的原始内容,但是解析的子树仍然丢失......非常感谢您的任何解决方案/帮助/建议。

0 投票
0 回答
580 浏览

date - Subversion 日期范围,有无日期的修订

我有一个 Subversion 存储库,它是我们团队可访问的子树的镜像。svnadmin 转储是使用对源存储库具有有限访问权限的帐户创建的。镜像比使用 svnadmin load 初始化。

历史包含大量没有路径和日期的修订。

同步工作

这导致大量的 svn 修订看起来像这样

相关:如何获取特定日期或日期范围内的 SVN 修订号 相关: http: //manned.org/rsvndump/29eed607

看起来这些空修订是用于填充的,但它们破坏了使用日期范围进行修订的选项。

我正在尝试验证最近 30 天的提交

这在 revprops 中没有日期的修订上失败。

未能找到修订 191375 的时间

不知何故,svnadmin 转储和 svnsync 创建了没有日期信息的空修订。这导致了我看到的错误。

我尝试使用 svndumpfilter --drop-all-empty-revs 删除空修订。该解决方案的问题是 svnsync 将不再连接。我现在看到的一个解决方案是用 svnrdump 替换 svnsync,用存储在某处的 lastsynchronised 修订版替换 svndumpfilter。

我可以用日期填写填充的修订,以便日期范围有效吗?

更新:添加镜像描述

Update2:只有路径对我可见的修订包含日期

更新3:替代建议

更新4:填充的空修订不包含日期,如何填写日期?

0 投票
0 回答
588 浏览

git - 什么是 git subtree push 断言?

我知道 git subtree 是一个 shell 脚本,我可以在其中看到 assert() 函数(https://raw.githubusercontent.com/git/git/master/contrib/subtree/git-subtree.sh)。但我真的不知道它在做什么,我知道的一件事是每次我使用 git subtree push 时,这些“断言”越来越多。只是推动我的子树需要越来越长的时间,这似乎很荒谬!

所以,问题:

  • 这些断言到底在做什么,为什么每次我推送子树时都必须从断言计数的开头开始?* 假设这些数字是断言。
  • 有没有办法限制这些东西的数量?可能像 git subtree pull --squash 这样的东西。我不想等这么久,或者当太多时它会在某个时候中断。

这是 git subtree push 命令的示例输出(请注意在检查 repo 是否存在之前它是如何进行无休止的断言的):

注意:该命令仅在已设置子树时才有效。

更新:

正如@AndrewC 和我自己所怀疑的那样,这些数字 (x)y/ 可能表示也可能不表示断言。我可能会假设他们这样做,但实际上很可能是 git subtree push 触发的 git subtree split 命令的一部分。不管它们是什么,问题/问题都是一样的:为什么它们会不断增加,我该如何限制它,因为它很快就会变得不可持续。每次推送子树时,我都等不及要完成1000个或更多的任务了!

0 投票
0 回答
357 浏览

git - 带有空标识提交的子树拆分;或者,在没有变基的情况下删除提交:一个不寻常的用例

我有一个非常大的存储库,只有一个分支。它的工作树不断更新(每隔几秒)和提交(每隔几分钟)。

我的实际目标是git subtree split针对特定目录运行并在将该目录移动到保存位置后截断大部分存储库。(请参阅将子目录分离(移动)到单独的 Git 存储库)但是,这会失败,因为其中一个提交有一个空的ident.

因此,我继续尝试删除此提交。但到目前为止,我发现的唯一方法是rebase. 但是,这不仅会在我的存储库上花费很长时间,而且我需要在此过程中停止对工作树的不断更新,这可能是不可能的或不理想的。

鉴于(我对提交在内部表示的方式的理解),我认为只需从历史中消除提交并切换相邻提交的链接将是一件简单的事情。不过,我想subtree split使用一个空的ident..提交应该会更容易。

编辑

好的,我最近意识到我可以git replace --edit <ref>用来更改相关提交上的标识。但是,我也意识到过去 1000 次提交的标识为空。我应该写一个脚本来改变它们,还是可以subtree split解决这个问题?

编辑

好的,所以我已经设法使用 更改了所有作者/提交者的姓名和电子邮件filter-branch --env-filter,然后创建了一个嫁接并成功地切断了链接问题中描述的旧提交。但是,我的存储库大小仍然相同——如何删除旧提交占用的额外空间?

编辑

我尝试了在 SO 和其他地方找到的几种方法。

  • git gc --aggressive --prune=now失败了
  • git prune是成功的,但并没有减少存储库的大小。(230G到205G左右)
  • git update-ref -d在上述错误中的两个哈希上并不能解决问题
  • 关于我想保留的分支,由于内存限制,我不能bundle或来自其他地方。pull否则,我会这样做并删除此存储库。
  • git fsck产生以下结果:

graft基本上,我需要一种方法来截断我用and销毁的提交中剩余的任何内容filter-branch。真的,我的首要任务是保持上述其他分支和工作目录完好无损。如果有必要,我可以摧毁其他一切。

0 投票
1 回答
503 浏览

java - 给定java中的链接二叉树,甚至是常规二叉树,如何找到所有子树?

我遇到了一个面试问题,要求我创建一种方法来查找二叉树中的所有子树。我想不通,我该如何回答这个问题?有没有一种简单的方法可以使用递归来实现这一点?我应该遍历列表吗?任何意见是极大的赞赏!

到目前为止,我只写了一个通用节点类:

任何意见是极大的赞赏!

0 投票
2 回答
340 浏览

c - 如何在 C 中清空二叉树中的子树?

目前,当我调用此函数时,它会删除所有子节点并释放我传递给它的节点的内存,但该节点仍链接到它的父节点并包含垃圾。
我需要能够将我传递的节点(左或右子节点)的父节点设置为等于,NULL以便程序在遍历树时不会崩溃。

这是我已经拥有的代码:

这是我的函数调用:emptySubtree(tree->root->left)

0 投票
3 回答
6794 浏览

php - 使用 PHP 展开和折叠树形菜单

我有以下数组:

我需要如下树形菜单:(仅使用 PHP)

点击后展开如下:

一旦我们点击另一个第一级项目,其相应的子节点将被展开,相同的格式应该被保留。

0 投票
1 回答
179 浏览

github - GitHub,作曲家,独立存储库的自动更新

我有一个主存储库,它是我的系统模块的核心路由器。

所以每个模块也是一个独立的存储库。

如何使推送到主存储库将触发事件以将更新的代码推送到独立存储库?

就像https://github.com/Sylius/Sylius - 他们有主存储库(此链接),他们在其中收集拉取请求和独立存储库,例如存在于 src/ 中的https://github.com/Sylius/SyliusTaxonomyBundle Sylius/Bundle/TaxonomyBundle

他们不是手动将更新推送到独立存储库吗?还是某种 github 钩子?git子树?

为什么他们在 composer.json 中有“替换”部分?这是如何工作的?我没有从官方文档中得到任何想法:((

0 投票
6 回答
154 浏览

c++ - 如何命名同时充当其他集合容器的 B+Tree 键/值映射集合

我正在寻找一些建议,因为我目前正在为集合抽象的命名画一个空白。这可能是一个稍微偏离主题的问题,如果被认为是这种情况,我们深表歉意。

我正在开发一个提供 B+Tree 存储的库,并在此 B+Tree 上支持多种集合接口,例如键/值映射和排序集。

除了允许常规映射键/值存储之外,一种特殊的集合是显式支持嵌套子集合的集合。这提供了名称空间/表空间/键空间支持的方法。

我目前对该集合抽象的工作名称是“MultiMap”。但这感觉不对,并且与例如 STL 多图并不完全一致。但到目前为止,我还没有想出更好的办法。

任何关于更好名称的建议将不胜感激。

作为额外信息,请参阅下面我正在考虑的接口定义:

0 投票
0 回答
81 浏览

git - Git 子模块/子树特定文件夹/项目

所以我的问题是我有 2 个解决方案,1 个依赖于另一个的某些项目,所以我有:

解决方案 1(存储库)

  • 项目一
  • 项目 2
  • 项目 3
  • 项目 4

解决方案 2(存储库)

  • 项目一
  • 项目 3
  • 项目 5

所以看到解决方案 1 和 2 共享项目 1 和 3 的重叠,在 cvs 世界中我们很容易做到这一点,但我还没有找到如何在 git 中做到这一点。

我已经看到了子模块和子树,但据我了解,这是在存储库级别共享的,并且不允许在存储库中共享特定的项目/文件夹。

我们拥有的解决方案实际上比上面描述的要大得多(解决方案 1 有 44 个项目)。我们正在浮动但我们不太喜欢的想法是为每个需要共享的项目创建一个单独的存储库,但这意味着 17 个左右的额外存储库,必须有一个更简单的方法不是吗?

谢谢你。