Contents
Merging from GDB
To merge from the gdb repository to the archer repository, first clone Archer, then add gdb as a remote:
$ git remote add gdb git://sourceware.org/git/gdb.git
Archer has a branch which tracks upstream gdb trunk. This branch should not diverge from upstream at all. Anyone can merge from gdb trunk to this branch at any time. To do this, first check out the Archer tracking branch:
$ git checkout master
Make sure that you have the latest from gdb:
$ git fetch gdb
Then merge from the gdb trunk:
$ git merge gdb/master
Finally, push back to the Archer repository:
$ git push
Merging to the Archer trunk
The Archer trunk is named "archer". Before merging from gdb to archer's trunk, please discuss the merge on the archer list. This would be a good time to make sure Archer's gdb-tracking branch is up to date.
Once the merge is approved, check out the archer trunk:
$ git checkout archer
Now merge from the gdb tracking branch:
$ git merge master
At this point, build and test the merge. Assuming all goes well, push:
$ git push
Your Own Branch
On your own branches, you can do as you like. Please use the text "archer" and your username in the name of any branch you plan to push to the Archer repository, like archer-user-reason-for-branch.
You can make a local branch very easily. We recommend basing a new "topic branch" on the master branch, rather than the archer branch, because this makes it simpler to push individual changes upstream. So:
$ git checkout master $ git pull
Then, make the branch and check it out:
$ git branch archer-tromey-explosion-project $ git checkout archer-tromey-explosion-project
This makes a local branch. If you want to mirror this local branch on the archer server (which we encourage -- it is better to share), push it:
$ git push origin archer-tromey-explosion-project:archer-tromey-explosion-project
Note that this command is only useful the first time you push your branch to the repository. For subsequent pushes, you should omit master:
$ git push origin archer-tromey-explosion-project
Extracting a patch from a branch
To extract a patch from a branch, use the git diff command like so:
Example: git diff origin/master...origin/archer-tromey-charset
Existing Branches
Please document the name and status of any branch in the public repository. You can see all the Archer branches using git branch -r | grep archer.
You can check out a specific branch using:
$ git clone git://sourceware.org/git/archer.git $ cd archer $ git checkout -tb archer-tromey-explosion-project origin/archer-tromey-explosion-project
Branch name |
Purpose |
archer-swagiaal-using-directive |
Fix problems related to using directives |
archer-tromey-delayed-symfile |
Improve startup performance by lazily read psymtabs |
archer-tromey-optional-psymtab |
Make psymtabs optional; implement DWARF indexing proposal |
archer-tromey-threaded-dwarf |
A branch off optional-psymtab that reads indices in background threads. |
archer-tromey-python |
Python scripting support for gdb. See PythonGdb |
archer-tromey-imported-unit |
Support for DW_TAG_imported_unit. Untested. |
archer-pmuldoon-next-over-throw² |
Teach GDB to stop correctly after using a "next" over a throw statement |
archer-pmuldoon-python-value-infcall⁴ |
Inferior function calls from a Python value. |
archer-keiths-expr-cumulative |
Cumulative branch for all expression-related hacking, including elimination of DW_AT_MIPS_linkage_name, single-quote fun, and C++ input canonicalization |
archer-keiths-realcpp-test |
C++ expression tests |
archer-jankratochvil-misc² |
Miscellaneous fixes |
archer-jankratochvil-vla³ |
C variable length arrays / DW_FORM_block / Fortran dynamic arrays |
archer-jankratochvil-fortran-module² |
Support Fortran use-module namespaces |
archer-jankratochvil-fedora12 |
Merge of <FIXME> branches for Fedora 12 |
archer-swagiaal-upstream |
A branch to park patches by swagiaal while they get reviewed upstream |
archer-sami-dwarf-names-branch |
Same as archer-keiths-dwarf-names-branch but with a few extra patches to ensure namespace-using.exp has 100% pass. Used for testing patches only. |
archer-jankratochvil-watchpoint |
Hardware watchpoints fixes posted for FSF GDB |
archer-swagiaal-adl |
Development branch for c++ argument dependent lookup |
archer-jankratochvil-pie |
Rewritten PIE (Position-Independent-Executable) support |
archer-jankratochvil-pie-fedora12 |
archer-jankratochvil-pie backport for archer-jankratochvil-fedora12 |
archer-jankratochvil-ifunc |
Support IFUNC (indirect functions) - Fedora Bug 539590 |
¹ This branch tracks the "archer" branch, not "master"
² This branch tracks the "master" branch, not "archer"
³ This branch tracks the "archer-jankratochvil-type-refcount" branch
⁴ This branch tracks the "archer-tromey-python" branch
Dead Branches
When you close a branch, please delete it from the table above, and list it here.
Branch name |
Purpose |
archer-sergio-catch-syscall |
Implementation of catch syscall |
archer-keiths-dwarf-names-branch |
Daniel Jacobowitz's DWARF names patch (to eliminate DW_AT_MIPS_linkage_name) |
archer-keiths-no-quotes |
mitigate/eliminate the need to single-quote every C++ input to GDB commands; includes string canonicaliztion for C++ inputs |
archer-keiths-linkage_name-redux |
Branch which is attempting to eliminate the use of linkage names in gdb |
archer-ppluzhnikov-python |
Paul's python bug fix |
archer-pmuldoon-exception-rewind-master |
Recover from fatal signals delivered via C++ exceptions in an inferior function call |
archer-pmuldoon-sigabrt-rewind |
Original name for exception-rewind branch |
archer-pmuldoon-exception-rewind |
Dead. Tracked archer instead of master. Branch tracking master is archer-pmuldoon-exception-rewind-master |
archer-pmuldoon-pretty-printers-lookup |
Pretty-printers look-up conversion branch |
archer-rmoseley-F9-patch-merge |
Ports of Fedora gdb patches |
archer-rmoseley-demo-merge |
Merges of archer branches for demo |
archer-rmoseley-fedora-merge |
Merges of archer branches for Fedora 11 release |
archer-rmoseley-f11-merge |
Merges of archer branches for Fedora 11 |
archer-jankratochvil-merge |
Merges of archer branches merged to `archer' |
archer-bauermann-python-patches² |
Contents of archer-tromey-python sorted out in upstream-submittable patches |
archer-tromey-charset |
Wide- and multibyte- character set handling |
archer-jankratochvil-expr |
Merge of "archer-keiths-expr-cumulative" with "master" |
archer |
Currently no longer maintained merge of the ready branches: jankratochvil-misc, jankratochvil-python, jankratochvil-type-refcount, jankratochvil-vla, keiths-expr-cumulative (incl. swagiaal-using-directive), pmuldoon-exception-rewind-master, sergio-catch-syscall, tromey-charset, tromey-delayed-symfile, tromey-python |
archer-jankratochvil-stork |
Proof-of-concept froggy-like GDB client (for this mail) |
archer-jankratochvil-expr-cumulative |
Temporary FSF GDB HEAD updates for archer-keiths-expr-cumulative |
archer-jankratochvil-fedora-merge |
Stable variant of "archer" used as a base for Fedora 11 - superseded by archer-jankratochvil-fedora12. |
archer-jankratochvil-type-refcount² |
Tom Tromey's struct type reference counting |
archer-jankratochvil-python |
Merge of "archer-tromey-python" with "archer-jankratochvil-type-refcount" |
archer-tromey-call-frame-cfa |
Implement DW_OP_call_frame_cfa |
archer-dje-dwarf-sig8² |
Support for http://wiki.dwarfstd.org/index.php?title=COMDAT_Type_Sections |
archer-tromey-dw-op-value |
Implement DW_OP_implicit_value and DW_OP_stack_value |
archer-jankratochvil-bp_location-accel |
Performance optimize large bp_location count posted for FSF GDB |
Git Tips
You can also set up .git/config so that you can push this branch with a simple git push. Just edit that file, and add a line like this to the [remote "origin"] section:
push = <local branch name>:<remote branch name>
One example would be:
push = python:archer-tromey-python
So now instead of writing:
% git push origin python:archer-tromey-python
Then, if you are in the python branch (for this example) you can just type:
% git push
You can also add multiple push entries in .git/config to create multiple branch mappings.