问题标签 [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.
c# - 检测图何时重新收敛的算法(类似于公共子树?)
我整天都在处理这个问题,我正在重写我们的一个遗留产品,我很难确定如何在我的流程图中找到一个特定的节点。这个问题让我想起了大学,但我一辈子都想不出一个算法来解决这个问题。
我附上了 3 个屏幕截图来帮助解释这一点,但基本问题是,给出 YES/NO? 决策节点,找到最近的终止分支的子节点。
我正在使用 C# .NET 和 JSON。在 JSON 中,我有一个对象,它为每个节点提供一个唯一标识符,并标识从一个节点到下一个节点的每个“链接”。我希望编写一个(或多个)函数来确定 C# 中给定分支节点的第一个“结束节点”。目前我已经在 C# 中将 JSON 构建到 XML 中。
鼓励任何和所有想法,而不是真正寻找代码,而是寻找方法/算法。
附上图中json的输出:
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 中的子树所做的所有更改都将被删除。甚至我添加到子树的新文件也会被删除!为什么是这样?我误解了子树的使用吗?我是否不正确地合并它?任何帮助将不胜感激!
此外,如果无法将这些与子树合并正确合并,那么我唯一的选择是手动、手动合并它们并创建新的项目结构吗?
谢谢!
c++ - 将一个 boost 属性树插入另一个
我想将一个子树从一个复制ptree
到另一个。
即
源代码:
并生成:
做类似的事情:
但是,我遇到了分段错误subtree.put_child("QueueQuestion",q);
有人知道吗?
git - 自动保持共享的 git 子树同步
在我们的服务器上,我们为不同的项目提供不同的 git 存储库,这些项目共享一些组件作为子树。对我来说,它们仍然是子树非常重要,因为我们在整个源代码库中进行积极的开发,重要的是人们拥有尽可能简单和方便的工作流程。这也意味着,理想情况下,一个简单git pull
的通过 gui 工具是工作的方式。子树非常非常方便,因为它们隐藏了底层的复杂性,允许每个人只克隆 repo 并查看他们需要的所有内容并最终推送到团队 git 服务器。
(然后 git 服务器应该推送到组件 git repos 最终将在 TFS 中结束)
现在我的问题是,如何自动使组件保持最新?我的想法是在项目 repo 上实现一个挂钩,该挂钩将git subtree pull
在接受任何推送之前执行(并可能抱怨客户端已过时),并git subtree push
在推送到达后立即执行第二个挂钩。
你有更好的想法吗?欢迎每一个输入。
svn - svn 子树,从一个 repo 更新,提交到另一个
A 在 SVN 存储库中有一个大项目。我想在其他应用程序中使用该项目的一些模块,所以我考虑从我的主 SVN 存储库中签出它们,以便我可以更新我的代码。
如何“导出”我的存储库的一个文件夹/模块,以便仅将该模块签出到其他项目?我想要包含该模块的其他项目也在他们自己的 SVN 存储库中。
在简历中,我希望能够对主仓库进行 SVN 更新,但对项目仓库进行提交。
我希望它清楚我想要做什么。
回应 DavidW anwser:
- 我有一个包含多个项目的存储库,但如有必要我可能会更改它。
- 我想提供源代码。它是一个 php 项目。我正在分叉模块。(我有一个全球通用项目,如果我的
客户需要一些特定的功能, - 我想为该客户创建一个单独的项目(在 svn 中也分开)。但我想
有一种方法将主项目中所做的一些更改合并到
客户端项目中。(例如:全局错误修复或功能)。
git - 如何跨 git repo 共享文件/文件夹?
我有一个 git 存储库,里面有我想跨 repo 共享的文件/文件夹。
为这个任务使用子模块看起来有点矫枉过正。在 SVN 的时候,我使用了 snv:externals 标志,这对我的目的来说工作得很好。
子树再次引用了我根本不需要的外部存储库。像符号链接这样简单的东西是可以接受的。但我需要它跨平台,因为我的开发人员在 Mac、Win 和 Linux 上。
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]
.
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 会忽略子树合并信息并尝试将旧更改合并回子树。换句话说,它不会像书中描述的那样“忽略”以前的合并。
有谁知道为什么会这样,有解决办法吗?
谢谢
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 行会话........ >:(