gitdebrebase context Editors Source code control Build tools - - PowerPoint PPT Presentation
gitdebrebase context Editors Source code control Build tools - - PowerPoint PPT Presentation
gitdebrebase context Editors Source code control Build tools Publication & retrieval gitdebrebase emacs sbuild dgit Debian vi gbp pq pbuilder dput archive ed gitdpm debuild apt dpkgbuildpackage dpkgsource
No in−tree metadata
... unlike any other tool ... unlike any other delta queue workflow
git−debrebase − features (1/3)
Standard Delta queue editing is immediate and easy May always May always May make "mixed" commits workflow
... unlike
from upstream git−rebase git−cherry−pick git−commit −m fixup!
git−dpm
Working tree is never dirtied − by metadata conflicts − by patch application − by patch export
... unlike gbp pq ... unlike gbp pq ... unlike gbp pq
No reading diffs of diffs
git−debrebase − features (2/3)
No need to switch branches Tree is always
... unlike gpb pq and
’able dpkg−buildpackage
git−dpm
git−debrebase − features (3/3)
Directly compatible with No need to ever use Can mostly ignore
3.0 (quilt) dsc git−blame (and
Tree makes sense to upstreams & users
3.0 (quilt) dsc
No command needed to upload other than dgit push−source
- utput is always perfect
git−log −− file, git−log −G ... like dgit−maint−merge(7) and git−dpm
) work quilt(1) dgit
master
git−debrebase − commit history structure
c h a n g e p a c k a g i n g commit queue delta
2 A B 1 Breakwater
master
commit mixed C3
git−debrebase − commit history structure
c h a n g e p a c k a g i n g commit queue delta
2 A B 1 Breakwater
master
commit mixed C3
git−debrebase − commit history structure
c h a n g e p a c k a g i n g commit queue delta
2 A B 1 Breakwater
after git−debrebase
master
upstream part of packaging part of
C3 C3
rebased commit = rewritten/
2 ’ 3’ ’ C ’
no ref refers, will be gc’d commit mixed C3
git−debrebase − commit history structure
c h a n g e p a c k a g i n g commit queue delta
2 A B 1 Breakwater
master v1.2
Upstream git history
upstream part of packaging part of
C3 C3
rebased commit = rewritten/
2 ’ 3’ ’ C ’
no ref refers, will be gc’d commit mixed C3
git−debrebase − commit history structure
c h a n g e p a c k a g i n g commit queue delta
2 A B 1 Breakwater
master
after new−upstream
2" " 3
v1.2
Upstream git history
changelog add version special
Anchor
merge autogenerated commit =
@ d " 1
no ref refers, will be gc’d upstream part of packaging part of
C3 C3
rebased commit = rewritten/
2 ’ 3’ ’ C ’
no ref refers, will be gc’d commit mixed C3
git−debrebase − commit history structure
c h a n g e p a c k a g i n g commit queue delta
2 A B 1 Breakwater
after upload
master
pseudomerge
debian/1.2−1
Interchange branch
published, eg salsa, dgit
d/patches
(re)generate %
/ 2" " 3
v1.2
Upstream git history
changelog add version special
Anchor
merge autogenerated commit =
@ d " 1
no ref refers, will be gc’d upstream part of packaging part of
C3 C3
rebased commit = rewritten/
2 ’ 3’ ’ C ’
no ref refers, will be gc’d commit mixed C3
git−debrebase − commit history structure
c h a n g e p a c k a g i n g commit queue delta
2 A B 1 Breakwater
after upload
master debian/1.2−1
Interchange branch
published, eg salsa, dgit
d/patches
(re)generate %
/ 2" " 3
v1.2
Upstream git history
changelog add version special
Anchor
merge autogenerated commit =
@ d " 1
no ref refers, will be gc’d upstream part of packaging part of
C3 C3
rebased commit = rewritten/
2 ’ 3’ ’ C ’
no ref refers, will be gc’d commit mixed C3
git−debrebase − commit history structure
c h a n g e p a c k a g i n g commit queue delta
2 A B 1 Breakwater A multi−parent commit made by taking Pseudomerge just the contents of exactly one of its parents. e.g., by git merge −s ours
pseudomerge
ffq−prev/master
was previously
after upload
master
pseudomerge
debian/1.2−1
Interchange branch
published, eg salsa, dgit
d/patches
(re)generate %
/ 2" " 3
v1.2
Upstream git history
changelog add version special
Anchor
merge autogenerated commit =
@ d " 1
no ref refers, will be gc’d upstream part of packaging part of
C3 C3
rebased commit = rewritten/
2 ’ 3’ ’ C ’
no ref refers, will be gc’d commit mixed C3
git−debrebase − commit history structure
c h a n g e p a c k a g i n g commit queue delta
2 A B 1 Breakwater
rebasing again
ffq−prev/master master
pseudomerge
debian/1.2−1
Interchange branch
published, eg salsa, dgit
d/patches
(re)generate %
/ 2" " 3
v1.2
Upstream git history
changelog add version special
Anchor
merge autogenerated commit =
@ d " 1
no ref refers, will be gc’d upstream part of packaging part of
C3 C3
rebased commit = rewritten/
2 ’ 3’ ’ C ’
no ref refers, will be gc’d commit mixed C3
git−debrebase − commit history structure
c h a n g e p a c k a g i n g commit queue delta
2 A B 1 Breakwater
master v1.2
Upstream git history
upstream part of packaging part of
C3 C3
rebased commit = rewritten/
2 ’ 3’ ’ C ’
no ref refers, will be gc’d commit mixed C3
git−debrebase − commit history structure
c h a n g e p a c k a g i n g commit queue delta
2 A B 1 Breakwater
v1.2
Upstream git history
changelog add version special
Anchor
merge autogenerated commit =
@ d " 1
no ref refers, will be gc’d upstream part of packaging part of
C3 C3
rebased commit = rewritten/
2 ’ 3’ ’ C ’
no ref refers, will be gc’d commit mixed C3
git−debrebase − commit history structure
c h a n g e p a c k a g i n g commit queue delta
2 A B 1 Breakwater
for new−upstream
CONFLICT (content): Merge conflict in README.md error: Failed to merge in the changes. Patch failed at 0002 decruft README for Debian The copy of the patch that failed is found in: .git/rebase-apply/patch When you have resolved this problem, run "git rebase --continue". If you prefer to skip this patch, run "git rebase --skip" instead. To check out the original branch and stop rebasing, run "git rebase --abort". git-debrebase: failed command: git rebase --onto 758a5851d24245ad9a0b87278562 3a3f7318dcdc b2d744310556e48b37cf98d6385c554b5e9a405a git-debrebase: error: subprocess failed with error exit status 128 $