档案

Archive for the ‘Linux’ Category

合并不同的git仓库

2月 2, 2012 留下评论

“How to megre two git repository?”

假设有两个不同的git代码仓库repoA和repoB, 而我们希望将其在本地合并到一个git仓库”Code”,该如何完成呢?
我们期望将repoA的代码checkout到”Code/sourceA”中, repoB中的代码在”Code/sourceB”中。
在本地的git repository中开一个新的branch:

git checkout -b merged

首先,先检出repoA的代码:

git remote add -f repoA url_to_repoA
git merge -s ours --no-commit repoA/master
git read-tree --prefix=Code/sourceA -u repoA/master
git ci -m "merge repoA into our local repo"

然后,再检出repoB的代码

git remote add -f repoB url_to_repoB
git merge -s ours --no-commit repoB/master
git read-tree --prefix=Code/sourceB -u repoB/master
git ci -m "merge repoA into our local repo"

这样,本地的git仓库中的merged分支即合并了repoA和repoB的master

特别地, 在本地repoB作为repoA的子目录,即repoA的代码在Code中, 而repoB的代码在Code/sourceB中:

cd Code
git clone url_to_repoA
git remote add -f repoB url_to_repoB
git merge -s ours --no-commit repoB/master
git read-tree --prefix=Code/sourceB -u repoB/master
git ci -m "merge repoB into repoA"
分类:Git, Linux

gdb的远程调试

12月 23, 2011 留下评论

gdb的远程调试通过gdbserver和gdb配合完成, 在目标主机上运行gdbserver,宿主主机上通过gdb与gdbserver通信进行调试。

例如,需要调试目标机器上的chromium。
首先通过gdbserver来attach到需要被调试的chromium进程。gdbsever需要指定gdb与server通信的方式,通常采用TCP的方式,假设gdbserver在目标主机上的监听地址为”:8899″ (127.0.0.1:8899),下面的命令完成这一步周:

target$gdbserver :8899 --attach 13506
Attached; pid = 13506
Listening on port 8899
Remote debugging from host 127.0.0.1

阅读更多…

分类:Linux