chiark / gitweb /
test suite: debchange: Work around faketime TZ bug
[dgit.git] / dgit-maint-debrebase.7.pod
index 685a6b251b8622d5caf4ebcd69bcb5f451054c79..16b65b39fa7b054e0397f51e4e408a7f7a456240 100644 (file)
@@ -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<salsa.debian.org>, 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<dgit-repos> server, we start with B<dgit clone>:
 
 =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<git debrebase convert-from-*> 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<dpkg-buildpackage -S>, and then unpacked the resultant source
 package.
@@ -258,8 +290,6 @@ To achieve this, you might need to delete
 I<debian/source/local-options>.  One way to have dgit check your
 progress is to run B<dgit build-source>.
 
-The first dgit push will require I<--overwrite>.
-
 =head1 GIT CONFIGURATION
 
 git-debrebase(1) does not yet support using B<git merge> to merge
@@ -625,7 +655,13 @@ using git-rebase(1) directly.  For example,
 =back
 
 If you take this approach, you should be very careful not to start the
-rebase too early.
+rebase too early,
+including before the most recent pseudomerge.
+git-rebase without a base argument will often
+start the rebase too early,
+and should be avoided.
+Run git-debrebase instead.
+See also "ILLEGAL OPERATIONS" in git-debrebase(5).
 
 =head1 SEE ALSO