Передайте Ctrl -C в подсказку в сценарии оболочки

Эта ошибка также может быть вызвана, если вы извлекаете ключи gpgчерез torи tor, если не запущен .

В системном журнале вы увидите:

command 'KS_GET' failed: No keyserver available

Для получения ключей через tor, установленный в~/.gnupg/dirmngr.conf:

# https://gnupg.org/blog/20151224-gnupg-in-november-and-december.html
use-tor
keyserver hkp://jirk5u4osbsr34t5.onion

# https://sks-keyservers.net/overview-of-pools.php#pool_hkps
hkp-cacert /etc/ssl/CA/sks-keyservers.netCA.pem
1
28.04.2021, 15:12
1 ответ

Оказывается, то, что я хочу сделать, можно выполнить с помощью Tcl. расширение, ожидать. Однако для этого требуется два сценария.

Сценарий оболочки.

#################################
shelveinterrupt.sh
#################################
#!/bin/bash

rm -rf test-shelveinterrupt
hg init test-shelveinterrupt
cd test-shelveinterrupt
hg branch foo
echo "First line of foo" >> foo
hg add foo
hg ci -m "First line of foo" foo

echo "Second line of foo" >> foo
hg shelve

hg up null

hg branch bar
echo "First line of bar" >> bar
hg add bar
hg ci -m "First line of bar" bar

hg log -vG

hg branch

hg unshelve

И скрипт Expect.

#################################
shelveinterrupt.exp
#################################
#!/usr/bin/expect -f

spawn./shelveinterrupt.sh
expect "What do you want to do?"
send -- "^C"
expect eof

# Check `hg status
cd test-shelveinterrupt
set hgst [exec hg status]
puts $hgst
exec hg update.

Это приводит к следующему результату

faheem@orwell:~/test-mercurial$./shelveinterrupt.exp
spawn./shelveinterrupt.sh
marked working directory as branch foo
(branches are permanent and global, did you want a bookmark?)
shelved as foo
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
marked working directory as branch bar
unshelving change 'foo'
rebasing shelved changes
file 'foo' was deleted in local [working-copy] but was modified in other [shelve].
You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
What do you want to do? interrupted!
# The repository is in an unfinished *update* state.

# Unresolved merge conflicts:
#
#     foo
#
# To mark files as resolved:  hg resolve --mark FILE

# To continue:    hg update.

abort: outstanding merge conflicts
(use 'hg resolve' to resolve)
    while executing
"exec hg update."
    (file "./shelveinterrupt.exp" line 11)

Так что hg update.тоже не работает.

0
07.05.2021, 13:01

Теги

Похожие вопросы