gitdebrebase context Editors Source code control Build tools - - PowerPoint PPT Presentation

git debrebase context
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

sbuild Editors Source code control Build tools emacs vi ed git−dpm gbp pq debuild pbuilder apt

dput

git−debrebase

dpkg−source −−commit svn−buildpackage

dgit

dpkg−buildpackage gitpkg

svn quilt

git

Publication & retrieval archive Debian (salsa)

Debconf 2018 Hsinchu Ian Jackson & Sean Whitton git−debrebase − context

slide-2
SLIDE 2

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

slide-3
SLIDE 3

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

slide-4
SLIDE 4

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

slide-5
SLIDE 5

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

slide-6
SLIDE 6

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

slide-7
SLIDE 7

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

slide-8
SLIDE 8

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

slide-9
SLIDE 9

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

slide-10
SLIDE 10

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

slide-11
SLIDE 11

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

slide-12
SLIDE 12

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

slide-13
SLIDE 13

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

slide-14
SLIDE 14

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

slide-15
SLIDE 15

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

slide-16
SLIDE 16

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 $

X3 failed rebase

slide-17
SLIDE 17

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

for new−upstream aborted rebase

slide-18
SLIDE 18

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

slide-19
SLIDE 19

Debconf 18 git−debrebase and dgit workshop drop−in session (bring your laptop or just your questions) Tuesday 10:00−11:45 room X

in

workflow tutorial

dgit.deb

dgit−maint−debrebase(7)

https://manpages.debian.org/unstable/dgit−maint−debrebase

git−debrebase(1) git−debrebase(5) Formal reference manuals in testing and stretch−backports git−debrebase.deb

git−debrebase − references

git debrebase convert−from−gbp