From b043825debebbfe4d3f44b6c51712f787dd0bf11 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Mon, 20 Aug 2018 09:15:54 -0700 Subject: dgit-maint-debrebase(7): Rewrite "Converting an existing package" Closes:#905573 Signed-off-by: Sean Whitton --- dgit-maint-debrebase.7.pod | 60 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 45 insertions(+), 15 deletions(-) diff --git a/dgit-maint-debrebase.7.pod b/dgit-maint-debrebase.7.pod index 0f2f892..b8f2640 100644 --- a/dgit-maint-debrebase.7.pod +++ b/dgit-maint-debrebase.7.pod @@ -209,47 +209,79 @@ patching the upstream source. This section explains how to convert an existing Debian package to this workflow. It should be skipped when debianising a new package. -=head2 No existing git history +If you have an existing git history that you have pushed to an +ordinary git server like B, we start with that. If +you don't already have it locally, you'll need to clone it, and obtain +the corresponding orig.tar from the archive: + +=over 4 + + % git clone salsa.debian.org:Debian/foo + % cd foo + % dgit setup-new-tree + % origtargz + +=back + +If you don't have any existing git history, or you have history only +on the special B server, we start with B: =over 4 % dgit clone foo % cd foo + +=back + +Then we make new upstream tags available: + +=over 4 + % git remote add -f upstream https://some.upstream/foo.git =back -=head2 Existing git history using another workflow +We now use a B command to convert your +existing history to the git-debrebase(5) data model. Which command +you should use depends on some facts about your repository: + +=over 4 + +=item (A) There is no delta queue. -First, if you don't already have the git history locally, clone it, -and obtain the corresponding orig.tar from the archive: +If there do not exist any Debian patches, use =over 4 - % git clone salsa.debian.org:Debian/foo - % cd foo - % origtargz + % git debrebase convert-from-gbp =back -If your tree is patches-unapplied, some conversion work is needed. -You can use +=item (B) There is a delta queue, and patches are unapplied. + +This is the standard git-buildpackage(1) workflow: there are Debian +patches, but the upstream source is committed to git without those +patches applied. Use =over 4 - git debrebase convert-from-gbp + % git debrebase convert-from-gbp =back -Then make new upstream tags available: +=item (C) There is a delta queue, and patches are applied. + +Use =over 4 - % git remote add -f upstream https://some.upstream/foo.git + % git debrebase convert-from-dgit-view =back -Now you simply need to ensure that your git HEAD is dgit-compatible, +=back + +Finally, you need to ensure that your git HEAD is dgit-compatible, i.e., it is exactly what you would get if you deleted .git, invoked B, and then unpacked the resultant source package. @@ -258,8 +290,6 @@ To achieve this, you might need to delete I. One way to have dgit check your progress is to run B. -The first dgit push will require I<--overwrite>. - =head1 GIT CONFIGURATION git-debrebase(1) does not yet support using B to merge -- cgit v1.2.3