https://github.com/git/git
Revision 342c14db8c1c570f24993c44d7687e541537d6bc authored by Junio C Hamano on 27 July 2015, 19:21:43 UTC, committed by Junio C Hamano on 27 July 2015, 19:21:44 UTC
When you say "!<ENTER>" while running say "git log", you'd confuse
yourself in the resulting shell, that may look as if you took
control back to the original shell you spawned "git log" from but
that isn't what is happening.  To that new shell, we leaked
GIT_PAGER_IN_USE environment variable that was meant as a local
communication between the original "Git" and subprocesses that was
spawned by it after we launched the pager, which caused many
"interesting" things to happen, e.g. "git diff | cat" still paints
its output in color by default.

Stop leaking that environment variable to the pager's half of the
fork; we only need it on "Git" side when we spawn the pager.

* jc/unexport-git-pager-in-use-in-pager:
  pager: do not leak "GIT_PAGER_IN_USE" to the pager
2 parent s 3b175fb + 124b519
Raw File
Tip revision: 342c14db8c1c570f24993c44d7687e541537d6bc authored by Junio C Hamano on 27 July 2015, 19:21:43 UTC
Merge branch 'jc/unexport-git-pager-in-use-in-pager' into maint
Tip revision: 342c14d
test-svn-fe.c
/*
 * test-svn-fe: Code to exercise the svn import lib
 */

#include "git-compat-util.h"
#include "vcs-svn/svndump.h"
#include "vcs-svn/svndiff.h"
#include "vcs-svn/sliding_window.h"
#include "vcs-svn/line_buffer.h"

static const char test_svnfe_usage[] =
	"test-svn-fe (<dumpfile> | [-d] <preimage> <delta> <len>)";

static int apply_delta(int argc, char *argv[])
{
	struct line_buffer preimage = LINE_BUFFER_INIT;
	struct line_buffer delta = LINE_BUFFER_INIT;
	struct sliding_view preimage_view = SLIDING_VIEW_INIT(&preimage, -1);

	if (argc != 5)
		usage(test_svnfe_usage);

	if (buffer_init(&preimage, argv[2]))
		die_errno("cannot open preimage");
	if (buffer_init(&delta, argv[3]))
		die_errno("cannot open delta");
	if (svndiff0_apply(&delta, (off_t) strtoumax(argv[4], NULL, 0),
					&preimage_view, stdout))
		return 1;
	if (buffer_deinit(&preimage))
		die_errno("cannot close preimage");
	if (buffer_deinit(&delta))
		die_errno("cannot close delta");
	strbuf_release(&preimage_view.buf);
	return 0;
}

int main(int argc, char *argv[])
{
	if (argc == 2) {
		if (svndump_init(argv[1]))
			return 1;
		svndump_read(NULL, "refs/heads/master", "refs/notes/svn/revs");
		svndump_deinit();
		svndump_reset();
		return 0;
	}

	if (argc >= 2 && !strcmp(argv[1], "-d"))
		return apply_delta(argc, argv);
	usage(test_svnfe_usage);
}
back to top