标签: subtree

使用 Visual Studio 存储库中的共享库

我是 Git 版本控制的新手。我只希望每个项目都有自己的存储库。

我创建

  1. RepoA 中的一个项目(共享库)
  2. RepoB 中的 B 项目(共享库)具有 A 的子树
  3. RepoC 中的 C 项目(共享库)具有 A 的子树
  4. RepoD 中的 D 项目(控制台应用程序)具有 B 和 C 的子树

文件夹结构如下。

D

-B

- 一种

-C

- 一种

如您所见,文件夹重复,并且我无法在 Visual Studio 中两次添加相同的项目。

如果我在 B 文件夹中添加 A 项目,则会发生编译错误。

元数据文件项目 C..... 'A.dll' 无法找到 因为 C 文件夹中的 A 项目从未被编译,所以缺少 A.dll。

如果C工程中的A编译一次就可以了。(通过打开C工程中的C.sln或A.sln)当然会有A.dll,

但是下次别人从git下载D项目时,他/她应该在编译D项目之前在C项目中编译C或A。

任何人都有一个很好的解决方案?

git shared repository subtree visual-studio-2015

5
推荐指数
1
解决办法
4114
查看次数

切换 Git 子树分支的正确方法?

假设我已经添加了一个新的远程“foo”,并拉了一个子树,压扁了,分支主。

$ git remote add -f foo some-repo.git
$ git subtree add --prefix=foo --squash foo master
Run Code Online (Sandbox Code Playgroud)

从我读过的文章(herehere等)来看,这似乎是切换分支的常用方法。在这种情况下,要分支“bar”:

$ git rm -r foo
rm 'foo/file'.
...
$ git commit -m "Delete foo on branch 'master' to switch to branch 'bar'."
1350 files changed, 144703 deletions(-)
delete mode 100644 foo/file
...
$ git subtree add --prefix=foo --squash foo bar
git fetch foo master
From some-repo.git
 * branch            master     -> FETCH_HEAD
Added dir 'foo'
Run Code Online (Sandbox Code Playgroud)

但这感觉很脏。为什么不直接使用已经有分支参数的“git subtree pull”(没有 rm/commit/add)?

$ …
Run Code Online (Sandbox Code Playgroud)

git subtree git-subtree

5
推荐指数
1
解决办法
1006
查看次数

XPath可以跨XML的两个子树进行外键查找吗?

说我有以下XML ...

<root>
  <base>
    <tent key="1" color="red"/>
    <tent key="2" color="yellow"/>
    <tent key="3" color="blue"/>
  </base>
  <bucket>
    <tent key="1"/>
    <tent key="3"/>
  </bucket>
</root>
Run Code Online (Sandbox Code Playgroud)

... XPath会返回"bucket"包含"red"和"blue"的内容?

xml xslt xpath subtree xslkey

4
推荐指数
1
解决办法
2133
查看次数

使用Git,子树合并具有子模块的外部项目的最佳方法是什么?

我正在使用Git存储库来处理与我正在开发的网站相关的所有内容.存储库包含与站点相关的所有文件,包括文档,模型,原始分层图像等,以及我放在www子目录中的Web根目录.

我正准备开始整合我选择用于项目其余部分的CMS; CMS是一个开源项目,也使用Git进行管理(如果重要的话,托管在GitHub上).显然CMS需要在www子目录中,但它不会是唯一的东西 - 会有CSS文件,图像,CMS的模板等等.因此,我选择了使用子树合并策略将外部项目添加到我的存储库.因为我可能在某个时候想要修改原始项目并提供更改,我已经从GitHub克隆了CMS存储库并从我的克隆中完成了子树合并.

问题是,外部项目(即CMS)具有我想要包含的子模块.确保子模块集成到主项目中的最佳方法是什么?我是否必须为每个子模块进行子树合并?

我不太可能想要修改子模块,但我可能会有一两个子模块.

git version-control subtree git-submodules

4
推荐指数
1
解决办法
1264
查看次数

Git子树合并策略,可能没有合并历史?

我一直试图摆脱子模块以获得一个自包含的存储库,并且子树合并策略似乎与这个用例相匹配.

然而,合并后的回购'历史出现在我自己项目的历史中,这令人讨厌.

我已经尝试了git filter-branch --subdirectory-filter path/to/subtree/ HEAD哪些工作......直到我尝试更新一个子树,git pull -s subtree my-subtree master用于将所有子树的文件重写到项目的根目录.

有没有办法在git中实现这一点?

git history subtree git-submodules

4
推荐指数
1
解决办法
3092
查看次数

推送到git存储库的子文件夹上的远程源?

我有一个git存储库,它使用Vagrant为WordPress项目构建虚拟服务器(仅限本地开发).文件夹结构大致如下(出于问题的目的).

- Vagrantfile
- puppet/
- wordpress/
    - {www public folder / root Wordpress files}
- files/
Run Code Online (Sandbox Code Playgroud)

现在所有这些文件都在我的存储库的根目录中,我希望它们留在那里,所以如果我需要向Vagrant添加任何更新,它们将被添加到repo中.现在,我的主机能够通过使用git直接推送更新来允许我部署到我的登台和生产服务器.但是这些文件存储在/ wordpress /中,其服务器上的源是根.理想情况下,我只想从/ wordpress /文件夹推送到远程源的根目录.

我想将/ wordpress /文件夹移动到项目的根目录,然后将所有Vagrant文​​件推送到生产服务器(除非有办法添加特定于远程源的.gitignore).

我确信有几种方法可以实现这一点,我也查看了git子树,但对于这个具体问题看起来有点过分.如果有人能提出最佳解决方案,我们将不胜感激.

git wordpress github subtree vagrant

4
推荐指数
1
解决办法
2572
查看次数

使用networkX的子树

在networkX中,我有一棵树作为DiGraph().

#!/usr/bin/python
# -*- coding: utf-8 -*-
import networkx as nx
t = nx.DiGraph()
t.add_edge(1,'r')
t.add_edge(2,'r')
t.add_edge(3,'r')
t.add_edge(4,2)
t.add_edge(5,2)
t.add_edge(6,5)
print t.edges() 
Run Code Online (Sandbox Code Playgroud)

如果采取树的节点2.
我怎么能得到2的子树?

编辑

我期待这个子树

[(4,2),(5,2),(6,5)]
Run Code Online (Sandbox Code Playgroud)

python tree subtree networkx

3
推荐指数
1
解决办法
2543
查看次数

找到最小的子树

给定n个节点在坐标平面上互连的图形,找到包含m个节点的最小距离子树的最佳方法是什么?

我发现这个问题的唯一解决方案是生成连接的所有节点组合,并尝试通过Kruskal或Prim的算法连接这些节点,而忽略其余的,然后比较所有创建的树并找到最小的树,但这当涉及到更大的树木时,效率并不高.

有更快,更有效的算法/方法吗?

algorithm tree graph-theory subtree

2
推荐指数
1
解决办法
1224
查看次数

子树提取 NLTK 树

我需要 NLTK 树的一些帮助。

我试图从这棵法国树中提取一些子树:

原始树

(SENT (NP-SUJ? (PRO=H Personne)) (VN=H (ADV* ne) (V=H sait)) (ADV* exactement) (PONCT* .))
Run Code Online (Sandbox Code Playgroud)

我只想提取 POS 标签末尾带有 '=H' 的树,然后添加父节点:

像这样: (NP-SUJ? (PRO=H Personne)) and this: (VN=H (V=H sait))

我写了一个函数来这样做:

def AddParent(tree):
    grammar = []
    for subtree in tree.subtrees():
        if subtree.height()==2 and subtree.label().endswith("=H"):
            PartialTree = ParentedTree(subtree.parent().label(), 
                               [ParentedTree(subtree.label(), subtree)])
            grammar.append(PartialTree)
    return grammar

#Test
pt = ParentedTree.fromstring("(SENT (NP-SUJ? (PRO=H Personne)) (VN=H (ADV* ne) (V=H sait)) (ADV* exactement) (PONCT* .))")
AddParent(pt)
[ParentedTree('NP-SUJ?', [ParentedTree('PRO=H', ['Personne'])]), 
ParentedTree('VN=H', [ParentedTree('V=H', ['sait'])])]
Run Code Online (Sandbox Code Playgroud)

我在这里有两个问题:首先,我想继续向原始树中的那些子树添加信息。例如,我想继续添加祖先节点,然后添加子节点,以执行以下操作:

(SENT (NP-SUJ? ) …
Run Code Online (Sandbox Code Playgroud)

python subtree nltk

2
推荐指数
1
解决办法
5519
查看次数

git checkout远程分支显示无关文件?

master分支有这些文件和文件夹(简化):

C:\Local\TickZoom\Project>ls
file.txt         name.txt      public
Run Code Online (Sandbox Code Playgroud)

公共分支正在跟踪供应商存储库,并且已将子树合并为上面主分支中的公用文件夹.public只有三个文件夹(简化):

C:\Local\TickZoom\Project>ls
platform  providers  www
Run Code Online (Sandbox Code Playgroud)

从公共切换到主切换时,它的行为正确.

但是,当从主设备切换到公共设备时,会发生奇怪的事情.它包含两者的所有文件和文件夹:

C:\Local\TickZoom\Project>git checkout public

C:\Local\TickZoom\Project>ls
file.txt  name.txt   public
platform  providers  www
Run Code Online (Sandbox Code Playgroud)

但是,检查git状态表示没有任何改变.

我发现'git reset --hard'修复了公众.

CLUE:似乎只有在对master进行新提交后才会发生这种情况.git会做某种自动合并吗?

在'git reset --hard'之后,结账并掌握并回到公共工作正常,即使反复.

第一个,我认为它已经修复但是下次我做出改变时又发生了.让我再试一次,确保......

现在,我无法重现它.但确实发生了两次.

另一个CLUE是我第一次进行git重置 - 很难抱怨文件被进程锁定.

在违规程序关闭后,git reset --hard成功,然后结帐在两个分支之间工作.

因此,结账会被锁定的文件和"默默地"失败感到困惑吗?它会更好,它的问题是以同样的方式失败git reset - 硬件而不仅仅是报告成功并且拥有混乱的工作空间.

任何其他智慧或选项设置git结账以避免这一点将不胜感激.

韦恩

git branch subtree git-checkout

1
推荐指数
1
解决办法
1422
查看次数

Java XPath API - 获取表示子树的字符串

我的问题不是关于xpath语法,而是与围绕xpath的java API有关.考虑以下xml:

<wrapper>
    <metadata>
        <somefield>somevalue</somefield>
        <anotherfield>othervalue</anotherfield>
    </metadata>
    <data>
        <some>
            <unique>
                <xml>
                    <structure>stuff</structure>
                </xml>
            </unique>
        </some>
    </data>
</wrapper>
Run Code Online (Sandbox Code Playgroud)

我可以使用以下代码轻松地使用xpath获取元数据字段:

 XPath xp = XPathFactory.newInstance().newXPath();
 Node node = (Node) xp.evaluate("/wrapper/metadata/somefield", xmlDoc, XPathConstants.NODE);
 String somefield = node.getFirstChild().getNodeValue();
Run Code Online (Sandbox Code Playgroud)

我正在努力学习如何从标记开始获取表示xml 子树的字符串<some>.换句话说,我编写什么代码来获取一个字符串,打印出来时会打印出以下内容?xpath查询将是"/ wrapper/data/some",但我不知道如何正确使用xpath api.

<some>
    <unique>
        <xml>
            <structure>stuff</structure>
        </xml>
    </unique>
</some>
Run Code Online (Sandbox Code Playgroud)

java xml xpath subtree

1
推荐指数
1
解决办法
1485
查看次数

git-worktree和git-subtree有什么区别?

就在我以为Git不再复杂的时候,我才发现git worktree。这是我不知道的子树或功能的代名词。工作树与子树相同还是不同?如果它们不同,它们又如何不同,工作树将解决什么问题?

git subtree git-worktree

1
推荐指数
1
解决办法
208
查看次数

如何通过删除子树来最大化树的权重

有一棵有N个节点(编号1到N)的根树。节点“ 1”是根。每个节点都有一个值;让我们用A(i)表示节点i的值。

可以多次执行以下操作(包括零次):

1.选择树中仍然存在的任何节点,并删除该节点的整个子树,包括它本身。

2.让我们将利润定义为树中当前存在的所有节点的值之和减去X?k,其中k表示执行此操作的次数。找到最大可能的利润。

我们如何在这里计算“ k”值?(意味着删除时间节点数以获取最佳利润)

例:-


3(number of nodes,N) ,

5(X)

1 -5 -10 (Values of corresponding nodes)

(edge(s) from 'x'->'y')

1 2

2 3

Output: -4

We remove the sub-tree of node : 2'.

Now,value of our tree is: 1.

Finals answer:- 1-(x)*k,
(k=1); as we have performed the operation of removing the sub-tree only '1' time 
:  1-(5)*1= -4.
Run Code Online (Sandbox Code Playgroud)

注意:没有给出树应该是二进制的,它也可以是普通树。

binary-tree subtree

-3
推荐指数
1
解决办法
1420
查看次数