Package: git-debrebase
Version: 10.7+deb12u2
Severity: wishlist

FYI: I checked salsa for the latest git-debrebase.1.pod, too.

I was trying to start experiment dgit-maint-debrebase(7) while reading:

* git-debrebase(1)
* git-debrebase(5)

I may be wrong but after several trials, it seems --force option is
needed for the initial usage of this command for the simple fresh git
repository case.

```
 $ git debrebase new-upstream 2.0
git-debrebase: snag detected (-fanchor-treated): old anchor is recognized due 
to --anchor, cannot check upstream

git-debrebase: error: git-debrebase: snags: 1 blocker(s) (you could -f<tag>, or 
--force)
 $ git debrebase --force new-upstream 2.0
git-debrebase: snag detected (-fanchor-treated): old anchor is recognized due 
to --anchor, cannot check upstream
git-debrebase: snags: 1 overriden by global --force
git-debrebase: laundered (head was 76d14a8c58abc7dbcac014e4a6a1800bf238b28d)
Recorded previous head for preservation
Successfully rebased and updated refs/heads/main.
```
In git-debrebase(1), it only says:

```
  --force
    Turns all snags into warnings.  See the -f<snag-id> option.

    Do not invoke git-debrebase --force in scripts and aliases; instead,
    specify the particular -f<snag-id> for expected snags.
```
No explicit statement when typically this is needed.

In git-debrebase(5), it only says:
```
  Anchor
    An anchor commit, which is usually a special two-parent merge:

     .... (snip)

    Alternatively, an anchor may be a single-parent commit which
    introduces the "debian/" directory and makes no other changes: ie,
    the start of Debian packaging.
```

The combination of these may mean:
* Initial packaging branch after packaging 1.0 has an anchor with a 
single-parent commit
* it is not *usual* case and requires --force.

If this is the case, please explicitly mention this in git-debrebase(1).

------------
Just FYI:

# 1
Diagram in git-debrebase(5) is missing single-parent commit anchor case.

# 2
As for the following 3 documents are a bit overwhelming with too many corner 
cases:
  * dgit-maint-debrebase(7)
  * git-debrebase(1)
  * git-debrebase(5)

I think it will be nice to have "GET STARTED just using local git
repository from scratch" for simple packaging case which used to be
handled by gbp is good start.  No "dgit push/pull".

Something along ...
```
$ git init;git add .;git commit -m "1.0"
 ... hack
$ dgit build-source # for 1.0
 ...
$ git checkout upstream
  ... hack
$ git commit -a -m "2.0"
$ git debrebase --force new-upstream 2.0
  ...
```
Once user can experiment locally, it becomes much easier to understand
all the complexities.

-- System Information:
Debian Release: 12.5
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.5.0-0.deb12.4-amd64 (SMP w/12 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages git-debrebase depends on:
ii  devscripts              2.23.4+deb12u1
ii  git [git-core]          1:2.39.2-1.1
ii  libdpkg-perl            1.21.22
ii  libfile-fnmatch-perl    0.02-3+b1
ii  liblocale-gettext-perl  1.07-5
ii  perl                    5.36.0-7+deb12u1

Versions of packages git-debrebase recommends:
ii  dgit              10.7+deb12u2
ii  git-buildpackage  0.9.30

git-debrebase suggests no packages.

-- no debconf information

Reply via email to