sapling/mercurial
Kostia Balytskyi 7405833d16 sshpeer: allow for additional environment passing to ssh exe
We already have the ability to customize the ssh command line arguments, let's
add the ability to customize its environment as well.

Example use-case is ssh.exe from Git on Windows. If `HOME` enviroment variable
is present and has some non-empty value, ssh.exe will try to access that
location for some stuff (for example, it seems for resolving `~` in
`.ssh/config`). Git for Windows seems to sometimess set this variable to the
value of `/home/username` which probably works under Git Bash, but does not
work in a native `cmd.exe` or `powershell`. Whatever the root cause, setting
`HOME` to be an empty string heals things. Therefore, some distributors
might want to set `sshenv.HOME=` in the configuration (seems less intrusive
that forcing everyone to tweak their env).

Test Plan:
- rt

Differential Revision: https://phab.mercurial-scm.org/D1683
2017-12-14 14:31:57 +00:00
..
cext phases: drop the list with phase of each rev, always comput phase sets 2017-12-06 15:46:41 +01:00
cffi codemod: use pycompat.isdarwin 2017-10-12 23:34:34 -07:00
default.d mergetools.rc: find OSX FileMerge in the new location inside Xcode 4.3 2015-10-16 11:37:34 +02:00
help workers: add config to enable/diable workers 2017-12-17 11:26:25 -08:00
hgweb hgweb: update graph function docstring 2017-12-14 21:30:00 +08:00
httpclient httpclient: update to 54868ef054d2 of httpplus 2016-06-27 11:53:50 -04:00
pure codemod: use pycompat.iswindows 2017-10-12 23:30:46 -07:00
templates hgweb: stop using HTML comments in <script> 2017-12-15 12:15:58 +08:00
thirdparty thirdparty: move selectors2 module to where it should be 2017-11-30 22:43:03 +09:00
__init__.py thirdparty: move selectors2 module to where it should be 2017-11-30 22:43:03 +09:00
ancestor.py py3: add __bool__ to every class defining __nonzero__ 2017-03-13 12:40:14 -07:00
archival.py py3: handle keyword arguments correctly in archival.py 2017-12-10 04:43:41 +05:30
bdiff.c bdiff: remove trailing newlines 2017-10-04 10:51:39 -04:00
bdiff.h bdiff: include compat.h in header to define ssize_t 2017-10-13 22:38:24 +09:00
bitmanipulation.h bitmanipulation: reformat with clang-format 2017-10-04 10:52:50 -04:00
bookmarks.py bookmark: add methods to binary encode and decode bookmark values 2017-10-15 14:59:55 +02:00
branchmap.py branchmap: remove superfluous pass statements 2017-09-30 07:42:59 -04:00
bundle2.py bundle2: add a 'modes' dictionary to the bundle operation 2017-10-17 15:39:34 +02:00
bundlerepo.py py3: handle keyword arguments correctly in bundlerepo.py 2017-12-10 06:36:35 +05:30
byterange.py cleanup: use urllibcompat for renamed methods on urllib request objects 2017-10-01 12:14:21 -04:00
changegroup.py changegroup: use any node, not min(), in treemanifest's generatemanifests 2017-11-08 18:24:43 -08:00
changelog.py transaction: build changes['revs'] as range instead of a set 2017-12-08 01:23:34 +01:00
chgserver.py dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options 2017-11-23 22:17:03 +09:00
cmdutil.py memfilectx: make changectx argument mandatory in constructor (API) 2017-12-11 09:27:40 -08:00
color.py py3: handle keyword arguments correctly in color.py 2017-12-10 04:45:27 +05:30
commands.py py3: handle keyword arguments correctly in commands.py 2017-12-10 04:45:41 +05:30
commandserver.py thirdparty: move selectors2 module to where it should be 2017-11-30 22:43:03 +09:00
compat.h encoding: add function to test if a str consists of ASCII characters 2017-04-23 12:59:42 +09:00
config.py config: allow remapping the default section 2017-10-14 17:41:41 +09:00
configitems.py workers: add config to enable/diable workers 2017-12-17 11:26:25 -08:00
context.py memfilectx: make changectx argument mandatory in constructor (API) 2017-12-11 09:27:40 -08:00
copies.py copies: group wdir-handling in one place 2017-12-14 00:25:03 -08:00
crecord.py crecord: fix revert -ir '.^' crash caused by 3649c3f2cd 2017-11-13 18:22:25 -08:00
dagop.py dagop: add smartset interface to filectxancestors() 2017-10-22 18:57:42 +09:00
dagparser.py py3: iterate bytes as a byte string in dagparser.py 2017-09-03 15:32:45 +09:00
dagutil.py setdiscover: allow to ignore part of the local graph 2017-12-06 22:44:51 +01:00
debugcommands.py debugdiscovery: correct and clean up command synopsis 2017-12-15 08:47:28 -08:00
destutil.py show: implement "stack" view 2017-07-01 22:38:42 -07:00
dirstate.py dirstate: clean up when restoring identical backups 2017-10-20 05:53:35 -07:00
dirstateguard.py dirstate: update backup functions to take full backup filename 2017-07-12 15:24:07 -07:00
discovery.py push: restrict common discovery to the pushed set 2017-12-06 23:33:01 +01:00
dispatch.py dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options 2017-11-23 22:17:03 +09:00
dummycert.pem
encoding.py py3: use 'surrogatepass' error handler to process U+DCxx transparently 2017-09-16 22:55:48 +09:00
error.py error: add InMemoryMergeConflictsError 2017-11-15 21:07:30 -08:00
exchange.py py3: handle keyword arguments correctly in exchange.py 2017-12-10 04:46:25 +05:30
exewrapper.c exewrapper: format with clang-format 2017-10-04 11:04:18 -04:00
extensions.py extensions: always include traceback when extension setup fails 2017-10-17 10:31:44 -07:00
fancyopts.py fancyopts: add early-options parser compatible with getopt() 2017-11-23 22:04:53 +09:00
filelog.py python3: replace sorted(<dict>.iterkeys()) with sorted(<dict>) 2017-08-22 20:06:58 -04:00
filemerge.py filemerge: pass a default value to _toolstr (issue5718) 2017-10-26 11:07:06 -07:00
fileset.py help: clarify quotes are needed for filesets.size expressions 2016-09-21 16:33:37 +00:00
formatter.py templater: load aliases from [templatealias] section in map file 2017-10-14 18:06:42 +09:00
graphmod.py log: add a "graphwidth" template variable 2017-08-15 10:15:31 -07:00
hbisect.py hbisect: use a defaultdict to avoid large allocations for a large changelogs 2017-11-23 14:13:14 -08:00
help.py py3: handle keyword arguments correctly in help.py 2017-12-10 04:46:39 +05:30
hg.py remotenames: rename related file and storage dir to logexchange 2017-12-07 00:26:45 +05:30
hook.py py3: handle keyword arguments correctly in hook.py 2017-12-10 04:46:50 +05:30
httpconnection.py py3: handle keyword arguments correctly in httpconnection.py 2017-12-10 04:47:04 +05:30
httppeer.py py3: handle keyword arguments correctly in httppeer.py 2017-12-10 04:47:21 +05:30
i18n.py i18n: cache translated messages per encoding 2017-10-13 21:36:10 +09:00
keepalive.py py3: handle keyword arguments correctly in keepalive.py 2017-12-10 04:47:34 +05:30
localrepo.py transaction: build changes['revs'] as range instead of a set 2017-12-08 01:23:34 +01:00
lock.py lock: allow to configure when the lock messages are displayed 2017-11-29 20:39:59 -05:00
logexchange.py remotenames: rename related file and storage dir to logexchange 2017-12-07 00:26:45 +05:30
lsprof.py lsprof: use print function 2016-01-02 11:40:53 -08:00
lsprofcalltree.py lsprofcalltree: use print function 2016-01-02 11:45:29 -08:00
mail.py py3: make sure the first argument of time.strftime() is str 2017-11-29 08:44:06 +05:30
manifest.py py3: return False early while checking whether None is a key in lazymanifest 2017-09-30 05:22:22 +05:30
match.py match: remove doc about undefined behavior of visitdir() 2017-11-30 22:32:13 +09:00
mdiff.py patch: add within-line color diff capacity 2017-10-26 00:13:38 +09:00
merge.py merge: check created file dirs for path conflicts only once (issue5716) 2017-11-24 12:53:58 -08:00
mergeutil.py checkunresolved: move to new package to help avoid import cycles 2016-11-21 21:31:45 -05:00
minirst.py python3: use our bytes-only version of cgi.escape everywhere 2017-10-05 14:16:20 -04:00
mpatch.c mpatch: switch alignment of wrapped line from tab to spaces with clang-format 2017-10-04 11:00:04 -04:00
mpatch.h mpatch: reformat function prototypes with clang-format 2017-10-04 10:56:33 -04:00
namespaces.py log: translate column labels at once (issue5750) 2017-12-02 16:29:49 +09:00
node.py node: use byte literals to construct nullid and wdirid 2016-03-12 14:04:57 -08:00
obsolete.py py3: handle keyword arguments correctly in obsolete.py 2017-12-10 04:47:49 +05:30
obsutil.py transaction: build changes['revs'] as range instead of a set 2017-12-08 01:23:34 +01:00
parser.py doctest: use print_function and convert bytes to unicode where needed 2017-09-03 14:56:31 +09:00
patch.py patch: do not break up multibyte character when highlighting word 2017-12-11 22:38:31 +09:00
pathutil.py pathutil: add doctests for canonpath() 2017-11-03 22:22:50 -04:00
peer.py peer: ensure command names are always ascii bytestrs 2017-10-15 00:05:00 -04:00
phases.py revset: use phasecache.getrevset to calculate public() 2017-12-08 14:20:34 -08:00
policy.py phases: drop the list with phase of each rev, always comput phase sets 2017-12-06 15:46:41 +01:00
posix.py codemod: use pycompat.isdarwin 2017-10-12 23:34:34 -07:00
profiling.py configitems: register the 'profiling.type' config 2017-06-30 03:44:00 +02:00
progress.py configitems: register the 'progress.format' config 2017-10-11 22:53:17 +02:00
pushkey.py
pvec.py
pycompat.py py3: introduce pycompat.ziplist as zip is a generator on Python 3 2017-12-11 05:56:35 +05:30
rcutil.py codemod: use pycompat.iswindows 2017-10-12 23:30:46 -07:00
registrar.py registrar: don't i18n ProgrammingError message 2017-10-18 22:10:08 -07:00
repair.py repair: preserve phase also when not using generaldelta (issue5678) 2017-09-14 11:16:57 -07:00
repository.py repository: formalize wire protocol interface 2017-08-13 11:04:42 -07:00
repoview.py repoview: include filter name in repr for debugging 2017-12-05 21:56:48 +09:00
revlog.py upgrade: add a 'redeltafullall' mode 2017-12-07 20:27:03 +01:00
revset.py py3: handle keyword arguments correctly in revset.py 2017-12-10 04:48:12 +05:30
revsetlang.py revset: move weight information to predicate 2017-09-01 19:42:09 -07:00
rewriteutil.py rewriteutil: add a precheck function to check if revs can be rewritten 2017-11-24 03:44:50 +05:30
scmposix.py codemod: use pycompat.isdarwin 2017-10-12 23:34:34 -07:00
scmutil.py tr-summary: keep a weakref to the unfiltered repository 2017-11-24 21:51:41 -05:00
scmwindows.py pager: use less as a fallback on Unix 2017-04-28 20:51:14 +09:00
server.py server: drop executable bit from daemon log file 2017-10-25 21:20:01 +09:00
setdiscovery.py setdiscover: allow to ignore part of the local graph 2017-12-06 22:44:51 +01:00
similar.py similar: remove caching from the module level 2017-01-13 11:42:36 -08:00
simplemerge.py py3: handle keyword arguments correctly in simplemerge.py 2017-12-10 04:48:24 +05:30
smartset.py py3: fix type of attribute name in smartset.py 2017-09-03 17:14:53 +09:00
sparse.py merge: add merge action 'pr' to rename files during update 2017-10-02 14:05:30 -07:00
sshpeer.py sshpeer: allow for additional environment passing to ssh exe 2017-12-14 14:31:57 +00:00
sshserver.py style: never put multiple statements on one line 2017-09-29 15:49:20 +00:00
sslutil.py py3: handle keyword arguments correctly in sslutil.py 2017-12-10 04:48:59 +05:30
statichttprepo.py statichttprepo: do not use platform path separator to build a URL 2017-10-28 17:23:52 +09:00
statprof.py statprof: remove a line of deadcode 2017-12-14 20:18:15 +00:00
store.py py3: iterate bytes as a byte string in store.lowerencode() 2017-09-03 17:28:47 +09:00
streamclone.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
subrepo.py py3: handle keyword arguments correctly in subrepo.py 2017-12-10 04:49:40 +05:30
tagmerge.py tagmerge: use workingfilectx to write merged tags 2017-07-11 16:48:15 -07:00
tags.py cachevfs: migration the tags fnode cache to 'cachevfs' 2017-07-15 23:30:25 +02:00
templatefilters.py templatefilters: defend against evil unicode strs in json filter 2017-10-16 22:44:43 -04:00
templatekw.py log: translate column labels at once (issue5750) 2017-12-02 16:29:49 +09:00
templater.py merge with stable 2017-12-14 16:01:28 -05:00
transaction.py util: add base class for transactional context managers 2017-07-28 22:42:10 -07:00
treediscovery.py error: get Abort from 'error' instead of 'util' 2015-10-08 12:55:45 -07:00
txnutil.py
ui.py dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options 2017-11-23 22:17:03 +09:00
unionrepo.py revlog: update signature of dummy addgroup() in bundlerepo and unionrepo 2017-09-15 23:58:45 +09:00
upgrade.py upgrade: simplify workaround for repo.ui.copy() 2017-12-10 19:43:35 +09:00
url.py url: add cgi.escape equivalent for bytestrings 2017-10-14 02:57:26 -04:00
urllibcompat.py urllibcompat: move some adapters from pycompat to urllibcompat 2017-10-04 11:58:00 -04:00
util.py py3: add b'' to regular expressions which are raw strings 2017-11-29 04:47:27 +05:30
verify.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
vfs.py workers: don't use backgroundfilecloser in threads 2017-12-11 16:51:13 -08:00
win32.py win32: work around a WinError problem handling HRESULT types 2017-03-30 00:33:00 -04:00
windows.py ssh: quote parameters using shellquote (SEC) 2017-08-04 23:54:12 -07:00
wireproto.py py3: handle keyword arguments correctly in wireproto.py 2017-12-10 04:50:16 +05:30
worker.py workers: add config to enable/diable workers 2017-12-17 11:26:25 -08:00