Category Archives: git

Mirror github pull requests locally

Each GitHub pull request is associated with a reference in the target repository. For instance the commit sent to pull request 3948 is the reference refs/pull/3948/head. If GitHub successfully merges the pull request in the target branch, another reference is … Continue reading

Posted in git, gitlab | Leave a comment

How was a cherry-pick conflict resolved ?

When a git cherry-pick fails because of a conflict, it can be resolved and committed. The reviewer is reminded that a conflict had to be resolved by the Conflicts section at the end of the message body: commit 7b8e5c99a4a40ae788ad29e36b0d714f529b12eb Author: … Continue reading

Posted in git | Leave a comment

How to display the commits from a merged branch ?

A branch gmock was proposed as pull request 483 on GitHub, accepted, merged into master and deleted. It had two commits: bf05ec1 tests: replace existing gtest 1.5.0 5cbe0c5 gmock: use Google C++ Mocking In GitHub, the reference pull/483/head is preserved … Continue reading

Posted in git | Leave a comment

Using git bisect with Ceph

When investingating a a problem using the latest Ceph sources, it was discovered that the problem only shows in the master branch and appeared after the v0.85 tag. The following script reproduces the problem and logs the result: $ cat … Continue reading

Posted in ceph, git | Leave a comment

Backporting with magit

Ceph uses GF-Complete stable branch (v1). Modifications required by Ceph were proposed to the master branch. While waiting for the corresponding pull request to be reviewed, a temporary branch (v1-ceph) was created in the Ceph name space for immediate use. … Continue reading

Posted in emacs, git, magit | Leave a comment

The footprints of 192 Ceph developers

Gource is run on the Ceph git repository for each of the 192 developers who contributed to its development over the past six years. Their footprint is the last image of a video clip created from all the commits they … Continue reading

Posted in ceph, git, gource | Leave a comment

working with git submodules in Ceph

The gf-complete and jerasure libraries implement the erasure code functions used in Ceph. They were copied in Ceph in 2013 because there were no reference repositories at the time. The copy was removed from the Ceph repository and replaced by … Continue reading

Posted in ceph, git | Leave a comment

Organization mapping and Reviewed-by statistics with git

shortlog is convenient to print a leader board counting contributions. For instance to display the top ten commiters of Ceph over the past year: $ git shortlog –since=’1 year’ –no-merges -nes | nl | head -10 1 1890 Sage Weil … Continue reading

Posted in ceph, git | Leave a comment

tip to review a large patch with magit and ediff

When reviewing a large changeset with magit, it can be difficult to separate meaningfull changes from purely syntactic substitutions. Using ediff to navigate the patch highlights the words changed between two lines instead of just showing a line removed and … Continue reading

Posted in emacs, git, magit | Leave a comment