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.

None: ArcherBranchManagement (last edited 2009-12-07 19:30:07 by TomTromey)

All content (C) 2008 Free Software Foundation. For terms of use, redistribution, and modification, please see the WikiLicense page.