问题标签 [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 回答
736 浏览

git - 如何将补丁应用于 git 子树合并?

我通过执行子树合并将子项目添加到 git 存储库。我现在需要对子项目应用补丁,但运行“git apply -v patch_name.patch”什么也没返回。没有错误消息,也没有任何文件被更改。

我已经尝试单独克隆子项目(即,进入子目录/tmp)并将其与主项目下的子项目目录中的内容进行比较;目录是一样的。

当我对 /tmp 下的克隆运行补丁时,它会按预期应用。似乎问题与子项目目录是子树合并的结果有关。

我想我可以修补新克隆下的文件,然后将它们复制到我的主项目下的子项目目录中。看来我不应该那样做。有没有更好的方法来解决这个问题?

0 投票
1 回答
1687 浏览

javascript - 更改 JavaScript InfoVis Toolkit 的 Spacetree 的子树方向

我正在使用 JIT (JavaScript InfoVis Toolkit) Spacetree。示例:http ://thejit.org/static/v20/Jit/Examples/Spacetree/example1.html

将整个树的方向更改为顶部、右侧、底部或左侧是微不足道的:

..但我想在主树的特定子树上执行此操作。到目前为止,我一直无法弄清楚这一点。基本上,我使用 Spacetree 来显示站点地图,并且我希望默认情况下整个站点都可见,而不会被切断。我已经设置了选项,以便整个树可见(约束:false,levelsToShow:3),但是树本身对于窗口来说太大了。我意识到完全避免这种情况可能是不可能的,但改变特定子树的方向(可能基于深度?)将优化树占据的空间并将其更多或全部内容置于可见视图中。

如果描述不够明显,树的画布的大小就是窗口的大小。

提前致谢!我期待听到任何答复。

0 投票
1 回答
423 浏览

git - Git 的子树合并策略没有选择正确的目录

我有一个看起来像这样的存储库:

subrepo是 github 上的一个存储库,我的存储库中有一个远程存储库,例如sub,它可以跟踪它,但是没有一个文件被合并。

我想要的是sub/mastersubrepo文件夹中合并。我知道这一点a_file_in_subrepo并且与another.ext他们完全一样,sub/master但是如果我跑步,git merge -s subtree sub/master我不会得到我想要的,而是得到:

我真的很困惑。我知道它猜测要自动合并到的目录,我可以覆盖它吗?

0 投票
1 回答
4164 浏览

git - git subtree 将更改推送回子树项目

以下内容的缩写:我想将提交消息推送到子树,但只有适用于该树的消息。我该怎么做呢?


我有两个项目,MasterSlave. Slave被检出为Master检出到lib/slave的子树,git subtree merge --prefix=lib/slave --squash projects/slave其中projects/slave一个分支Slave被检出:

分支机构:

主项目/从站 → 从站

现在我正在我的master分支上工作,对作为两个项目一部分的文件进行提交,一切都很顺利。现在我想将更改推回Slave

  • git结帐奴隶
  • 混帐???掌握

如果我进行正常的合并,无论是否修改了任何文件,我都会为每个提交给 master 提交提交lib/slave。或者我可以做一个--squash并且只得到一个提交,但是我丢失了日志消息。

那么如何获得适当的日志消息呢?例如,如果我的master日志历史是:

  • 将图像添加到主控
  • 仅从站中修改的文件
  • 仅对 master 进行更多更改
  • master和slave中的修改文件

我希望将其添加到Slave

  • 仅从站中修改的文件
  • master和slave中的修改文件
0 投票
2 回答
529 浏览

git - 使用 git 但不使用 git 子模块在子目录中安装 wordpress

我正在使用 git(基于 Mark Jaquith 的 Wordpress Local Dev 帖子)在本地主机上工作以实现 wordpress 工作流程。我的文件结构看起来像这样

本地开发

  • .git
  • 索引.php
  • .htaccess
  • wp-config.php
  • local-config.php(忽略)
  • 内容/主题/
  • 内容/插件/
  • 内容/上传/(忽略)
  • 核心/(wordpress核心)

我想要做的是从 github 获取最新的 wordpress 并将其放入 core/ 以便升级过程看起来像

但是我花了很多时间弄清楚如何将 Wordpress 放在自己的目录中,而无需

  • 使用svn
  • 使用 git pull 进入 local.dev 并手动将文件移动到 core/ 中。

我错过了什么?

谢谢

0 投票
2 回答
1120 浏览

git - 使用子树合并策略,历史没有合并

我正在尝试通过“子树合并”将外部 SVN 存储库用作我的存储库中的子树。我相信这应该保持库中文件的历史完整,但它不起作用 - 来自合并到我的主分支中的子树的库没有历史记录,但在我添加它们时提交 - 这是一个历史记录来说明我的意思,正是我将要达到的状态如下。

这就是我正在做的尝试让它发挥作用:

这“有效”,但是,正如我所说,当我查看我的历史记录时,我希望从 libYAML 存储库中看到完整的历史记录,但我没有 - 如上所述。

0 投票
1 回答
322 浏览

algorithm - 如何生成从根节点展开的所有子树?

我需要一种有效的算法来生成从根节点扩展的所有子树。该算法应该适用于任何树结构。任何人都可以贡献代码吗?

例如,给定树的边为 0->1、0->2、2->3。有六个子树:0,

0,1

0,2

0,1,2

0,2,3

0,1,2,3

0 投票
2 回答
1675 浏览

c - 如何在 BST C 语言中删除子树?

我想做pop函数来删除节点的节点和子树。这是我的代码

在我使用 pop 之前,Pre 函数运行良好。但是在我使用 pop 功能之后,它就中断了。谁能知道错误在哪里?

0 投票
2 回答
3960 浏览

algorithm - 部分子树匹配算法

我搜索了论坛,但我无法弄清楚其他类似的问题是否必然与这个问题有关。

我要做的是将子树与对象树匹配。

我知道有基于后缀树或自动机的模式匹配算法,但我不确定它们是否适用于此。

例子

我试图将图片中红色节点给出的子树与更大的树进行匹配,无论树的整体结构或红色节点是否有子节点。

直接模式匹配不起作用的原因是没有可用的节点排序(后/预排序、广度)。

所以我正在考虑编写一个递归算法,它从子树的根开始并尝试匹配节点,然后是它们的子节点。

我想知道是否存在任何这样的(有效的算法)。抱歉,如果这已经被问到了。

0 投票
4 回答
4886 浏览

git - 使用 git subtree push 的“致命:坏对象”错误

这是一个菜鸟问题,但我有能力解决这个问题。我继承了一个似乎是回购损坏的 git 子树的奇怪问题。

这是场景:基于 git 的项目 A 的子树正在项目 B 中使用。部署脚本的一部分使用将子树推送到项目 B 的 repo:

git subtree push -P sub/path/name --squash git@github.com:MyCo/project_b.git projectb_branch

它开始推送提交并失败

我在源代码库的 git 日志中搜索了 SHA。它显示在提交中:

目标 repo (project_b) 确实具有该 SHA 的提交,但源 repo 没有。我浏览了子树 shell 脚本,我可以看到它在尝试使用 git log 查找该对象时失败了(在调用 git log -l --pretty=format:'%T' {sha} 的 toptree_for_commit 函数中)。

在这一点上,我有点不知所措,但渴望找到解决方案。在我有限的知识允许的范围内,我已经对此进行了研究,因此我欢迎任何可以让我更接近解决方案的提示、技巧或 RTFM。

我由衷的感谢!