问题标签 [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 投票
1 回答
1640 浏览

c# - C#中如何求左右子树的高度

如何找到左右子树的高度,我在以下链接 C# BST中使用了此代码

任何帮助,将不胜感激。

亲切的问候

0 投票
5 回答
992 浏览

c# - 检测图何时重新收敛的算法(类似于公共子树?)

我整天都在处理这个问题,我正在重写我们的一个遗留产品,我很难确定如何在我的流程图中找到一个特定的节点。这个问题让我想起了大学,但我一辈子都想不出一个算法来解决这个问题。

我附上了 3 个屏幕截图来帮助解释这一点,但基本问题是,给出 YES/NO? 决策节点,找到最近的终止分支的子节点。

我正在使用 C# .NET 和 JSON。在 JSON 中,我有一个对象,它为每个节点提供一个唯一标识符,并标识从一个节点到下一个节点的每个“链接”。我希望编写一个(或多个)函数来确定 C# 中给定分支节点的第一个“结束节点”。目前我已经在 C# 中将 JSON 构建到 XML 中。

鼓励任何和所有想法,而不是真正寻找代码,而是寻找方法/算法。

在此处输入图像描述 在此处输入图像描述

给定是/否找到延迟块..所有子节点遍历到的第一个节点

附上图中json的输出:

0 投票
2 回答
237 浏览

git - Git 子树合并删除正在合并到的分支中的更改

我使用 Git 书中描述的结构设置了两个存储库:http: //git-scm.com/book/ch6-7.html。基本上,我想在一个 repo 的副本和它的 master 分支之间保持关系。我知道你可以用子模块做到这一点,但更新它们的过程似乎有点麻烦,我被告知(并阅读)子树更容易使用。无论如何,我将“RepoA”设置为其中包含“RepoB”的子树。我按照 T 恤链接中提供的步骤进行操作。

我对“RepoA”中的子树进行了重大修改。同时,我团队的其他人正在对“RepoB”上的master进行修改。当一切都说完了,我希望我可以从“RepoB”源/主节点中提取更改并将它们合并到 RepoA 中的子树中。但是,当我这样做时(使用带有 --squash 和 --no-commit 的 -s 子树合并选项),我对 RepoA 中的子树所做的所有更改都将被删除。甚至我添加到子树的新文件也会被删除!为什么是这样?我误解了子树的使用吗?我是否不正确地合并它?任何帮助将不胜感激!

此外,如果无法将这些与子树合并正确合并,那么我唯一的选择是手动、手动合并它们并创建新的项目结构吗?

谢谢!

0 投票
0 回答
1669 浏览

c++ - 将一个 boost 属性树插入另一个

我想将一个子树从一个复制ptree到另一个。

源代码:


并生成:


做类似的事情:

但是,我遇到了分段错误subtree.put_child("QueueQuestion",q);

有人知道吗?

0 投票
0 回答
669 浏览

git - 自动保持共享的 git 子树同步

在我们的服务器上,我们为不同的项目提供不同的 git 存储库,这些项目共享一些组件作为子。对我来说,它们仍然是子非常重要,因为我们在整个源代码库中进行积极的开发,重要的是人们拥有尽可能简单和方便的工作流程。这也意味着,理想情况下,一个简单git pull的通过 gui 工具是工作的方式。子树非常非常方便,因为它们隐藏了底层的复杂性,允许每个人只克隆 repo 并查看他们需要的所有内容并最终推送到团队 git 服务器。

(然后 git 服务器应该推送到组件 git repos 最终将在 TFS 中结束)

现在我的问题是,如何自动使组件保持最新?我的想法是在项目 repo 上实现一个挂钩,该挂钩将git subtree pull在接受任何推送之前执行(并可能抱怨客户端已过时),并git subtree push在推送到达后立即执行第二个挂钩。

你有更好的想法吗?欢迎每一个输入。

0 投票
2 回答
1765 浏览

svn - svn 子树,从一个 repo 更新,提交到另一个

A 在 SVN 存储库中有一个大项目。我想在其他应用程序中使用该项目的一些模块,所以我考虑从我的主 SVN 存储库中签出它们,以便我可以更新我的代码。

如何“导出”我的存储库的一个文件夹/模块,以便仅将该模块签出到其他项目?我想要包含该模块的其他项目也在他们自己的 SVN 存储库中。

在简历中,我希望能够对主仓库进行 SVN 更新,但对项目仓库进行提交。

我希望它清楚我想要做什么。

回应 DavidW anwser:

  • 我有一个包含多个项目的存储库,但如有必要我可能会更改它。
  • 我想提供源代码。它是一个 php 项目。我正在分叉模块。(我有一个全球通用项目,如果我的
    客户需要一些特定的功能,
  • 我想为该客户创建一个单独的项目(在 svn 中也分开)。但我想
    有一种方法将主项目中所做的一些更改合并到
    客户端项目中。(例如:全局错误修复或功能)。
0 投票
1 回答
415 浏览

git - 如何跨 git repo 共享文件/文件夹?

我有一个 git 存储库,里面有我想跨 repo 共享的文件/文件夹。

为这个任务使用子模块看起来有点矫枉过正。在 SVN 的时候,我使用了 snv:externals 标志,这对我的目的来说工作得很好。

子树再次引用了我根本不需要的外部存储库。像符号链接这样简单的东西是可以接受的。但我需要它跨平台,因为我的开发人员在 Mac、Win 和 Linux 上。

0 投票
2 回答
212 浏览

ruby-on-rails - RAILS:如何使用 [@Grandparent, @Parent] 表示法为孙模型生成链接(祖父显示为 Nil)

当我尝试显示、编辑、删除或添加区时遇到以下错误:

我期待它生成一个 country_state_path 链接,因为我有link_to 'Back', [@country, @state]但由于某种原因它只给了我 state_path。如果我使用点符号而不是 @country.state 我会收到一个 nilClass 错误。

我正在为我的模型使用树结构:

如果我输入 country_state_path 一切正常。但我宁愿使用模型符号输入它,因为它适用于我的状态模型。

(我使用了正确的术语吗?如果不是,请更正,我还是 Rails 的新手)

代码

地区模式

区控制器

区“显示”视图

不工作的线路是"link_to 'Back', [@country, @state].

0 投票
0 回答
435 浏览

svn - svn 合并一个子树,然后是完整的树

在我的公司,我们使用 SVN 将主干的子树合并到分支中,反之亦然。

例如,我们合并 /Trunk/folderA/ --> /Branch/folderA/ 并不总是从 /Trunk/ --> /Branch/ 执行根合并。

我注意到每个文件夹的 mergeinfo 会跟踪文件夹的旧合并,我们希望 svn 能够“忽略”在过去的子树合并中已经应用的更改。此功能在 SVN 书籍中名为“Subtree Merges and Subtree Mergeinfo”的章节中有具体描述,链接: http://svnbook.red-bean.com/en/1.7/svn.branchmerge.basicmerging.html#svn.branchemerge。 basicmerging.stayinsync.subtree

问题:当我们现在执行根合并时,svn 会忽略子树合并信息并尝试将旧更改合并回子树。换句话说,它不会像书中描述的那样“忽略”以前的合并。

有谁知道为什么会这样,有解决办法吗?

谢谢

0 投票
2 回答
1333 浏览

git - git subtree push 失败,输出疯狂

我按照这里的说明创建了一个 git 子树 - https://help.github.com/articles/working-with-subtree-merge

也许不幸的是,我对包含子树的存储库进行了正常的 TortoiseGit 推送。出于某种原因,来自子树的更改文件列在 TortoiseGit 的更改列表中(它是合法更改的,顺便说一句),所以我想“哦!Neat!TortoiseGit 自动支持子树!”,所以我继续提交并做了一个普通的 TortoiseGit推。

然后为了测试 TortoiseGit 是否符合我的想法,我得到了子树所在存储库的克隆,并拉取了。可悲的是,我没有从我认为我推入 TortoiseGit 的子树中得到改变......

所以现在我不确定发生了什么,所以我求助于安装 git-subtree 并在子树上尝试 push 命令的不同变体,直到某些东西似乎起作用 -

我应该比仅仅猜测更好,因为我认为其中一条线意外地推动了一个新分支或其他东西,现在可能导致与这个问题相关的问题......

尽管如此,我还是继续尝试按照我在网上其他地方找到的说明进行操作,以确保我做的一切正常——

这似乎奏效了。但是还是不确定我推送是否正确,我尝试根据我找到的新页面再次推送 - git subtree push -P prime https://github.com/bryanedds/prime.git master

它给了我各种带有拒绝错误的疯狂输出-

我再次尝试拉动,但无济于事。另外,重要的是,所有数字、括号和斜杠是什么?我现在完全被卡住了,迷路了,笨手笨脚的可能是我的错,所以我真诚地感谢在这件事上的帮助!

最后,我可能在把自己挖进这个洞的时候做了其他坏事......我希望我有一个我所做的一切的日志,但 CMD 认为任何人都不需要知道超过他们的最后 50 行会话........ >:(