我是 Git 版本控制的新手。我只希望每个项目都有自己的存储库。
我创建
文件夹结构如下。
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。
任何人都有一个很好的解决方案?
假设我已经添加了一个新的远程“foo”,并拉了一个子树,压扁了,分支主。
$ git remote add -f foo some-repo.git
$ git subtree add --prefix=foo --squash foo master
Run Code Online (Sandbox Code Playgroud)
从我读过的文章(here和here等)来看,这似乎是切换分支的常用方法。在这种情况下,要分支“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) 说我有以下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"的内容?
我正在使用Git存储库来处理与我正在开发的网站相关的所有内容.存储库包含与站点相关的所有文件,包括文档,模型,原始分层图像等,以及我放在www子目录中的Web根目录.
我正准备开始整合我选择用于项目其余部分的CMS; CMS是一个开源项目,也使用Git进行管理(如果重要的话,托管在GitHub上).显然CMS需要在www子目录中,但它不会是唯一的东西 - 会有CSS文件,图像,CMS的模板等等.因此,我选择了使用子树合并策略将外部项目添加到我的存储库.因为我可能在某个时候想要修改原始项目并提供更改,我已经从GitHub克隆了CMS存储库并从我的克隆中完成了子树合并.
问题是,外部项目(即CMS)具有我想要包含的子模块.确保子模块集成到主项目中的最佳方法是什么?我是否必须为每个子模块进行子树合并?
我不太可能想要修改子模块,但我可能会有一两个子模块.
我一直试图摆脱子模块以获得一个自包含的存储库,并且子树合并策略似乎与这个用例相匹配.
然而,合并后的回购'历史出现在我自己项目的历史中,这令人讨厌.
我已经尝试了git filter-branch --subdirectory-filter path/to/subtree/ HEAD哪些工作......直到我尝试更新一个子树,git pull -s subtree my-subtree master用于将所有子树的文件重写到项目的根目录.
有没有办法在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子树,但对于这个具体问题看起来有点过分.如果有人能提出最佳解决方案,我们将不胜感激.
在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) 给定n个节点在坐标平面上互连的图形,找到包含m个节点的最小距离子树的最佳方法是什么?
我发现这个问题的唯一解决方案是生成连接的所有节点组合,并尝试通过Kruskal或Prim的算法连接这些节点,而忽略其余的,然后比较所有创建的树并找到最小的树,但这当涉及到更大的树木时,效率并不高.
有更快,更有效的算法/方法吗?
我需要 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) 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结账以避免这一点将不胜感激.
韦恩
我的问题不是关于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) 就在我以为Git不再复杂的时候,我才发现git worktree。这是我不知道的子树或功能的代名词。工作树与子树相同还是不同?如果它们不同,它们又如何不同,工作树将解决什么问题?
有一棵有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)
注意:没有给出树应该是二进制的,它也可以是普通树。
subtree ×13
git ×7
python ×2
tree ×2
xml ×2
xpath ×2
algorithm ×1
binary-tree ×1
branch ×1
git-checkout ×1
git-subtree ×1
git-worktree ×1
github ×1
graph-theory ×1
history ×1
java ×1
networkx ×1
nltk ×1
repository ×1
shared ×1
vagrant ×1
wordpress ×1
xslkey ×1
xslt ×1