Package: myrepos
Version: 1.16
Severity: minor

Hi,

mr diff does not work as intended when vcsh is used. mr invokes vcsh
with output sent to the background, vcsh invokes git diff which in
turn invokes a pager, which never makes it to the user because it's
all done in the background:

  │   ├─bash,28155
  │   │   └─perl,29745 /usr/bin/mr diff
  │   │       ├─perl,29759 /usr/bin/mr diff
  │   │       │   └─sh,29787 -c...
  │   │       │       └─vcsh,29793 /usr/bin/vcsh run ...
  │   │       │           └─git,29843 diff
  │   │       │               └─pager,29846
  │   │       ├─perl,29760 /usr/bin/mr diff
  │   │       │   └─sh,29786 -c...
  │   │       │       └─vcsh,29792 /usr/bin/vcsh run ...
  │   │       │           └─git,29822 diff
  │   │       │               └─pager,29828
  │   │       ├─perl,29762 /usr/bin/mr diff
  │   │       │   └─sh,29800 -c...
  │   │       │       └─vcsh,29815 /usr/bin/vcsh run ...
  │   │       │           └─git,29845 diff
  │   │       │               └─pager,29848
  │   │       ├─perl,29764 /usr/bin/mr diff
  │   │       │   └─sh,29785 -c...
  │   │       │       └─vcsh,29789 /usr/bin/vcsh run ...
  │   │       │           └─git,29840 diff
  │   │       │               └─pager,29844
  │   │       └─perl,29765 /usr/bin/mr diff
  │   │           └─sh,29801 -c...
  │   │               └─vcsh,29806 /usr/bin/vcsh run ...
  │   │                   └─git,29838 diff
  │   │                       └─pager,29847

GIT_PAGER=cat mr diff works as designed:
$ GIT_PAGER=cat mr diff
mr diff: /home/mh/.config/vcsh/repo.d/bash.git
diff --git a/.bash_initshared b/.bash_initshared
index 7eb04db..73f012c 100755
--- a/.bash_initshared
+++ b/.bash_initshared
@@ -22,12 +22,14 @@ done
 export DEBFULLNAME="Marc Haber"
 export DEBEMAIL="mh+debian-packa...@zugschlus.de"

-export CVS_RSH=ssh
+#commented 2016-06-27
+#export CVS_RSH=ssh

 export ALIOTHUSER=zugschlus

-export DPGO_ORIGTARDIR=$HOME/devel/orig
-export DPEP_ORIGTARGZPATH=$DPGO_ORIGTARDIR
+#commented 2016-06-27
+#export DPGO_ORIGTARDIR=$HOME/devel/orig
+#export DPEP_ORIGTARGZPATH=$DPGO_ORIGTARDIR
 export QUILT_PATCHES=debian/patches
 export QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index"

@@ -65,6 +67,15 @@ for editor in jed vim vi; do
 done
 export EDITOR VISUAL CHANGESEDITOR

+# mr update
+if command -v mr > /dev/null; then
+  RET=0
+  mr update >/dev/null || RET=$?
+  if [ "$RET" -ne 0 ]; then
+    mr --force update
+  fi
+fi
+
 # pull active network scheme to environment

 # disabled 2016-05-08

mr diff: /home/mh/.config/vcsh/repo.d/dotfiles.git

mr diff: /home/mh/.config/vcsh/repo.d/jed.git

mr diff: /home/mh/.config/vcsh/repo.d/mr.git

mr diff: /home/mh/.config/vcsh/repo.d/sshclient.git

mr diff: finished (5 ok)
$

Please consider setting GIT_PAGER to cat in mr diff, or implement some
other scheme that detects that a mr subprocess hangs in a pager.

Greetings
Marc

Reply via email to