From: Junio C Hamano Date: Thu, 1 Nov 2007 20:47:47 +0000 (-0700) Subject: Merge branch 'js/forkexec' X-Git-Tag: v1.5.4-rc0~292 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=4340a813d007b592534de664d152d66417dbe809;p=git.git Merge branch 'js/forkexec' * js/forkexec: Use the asyncronous function infrastructure to run the content filter. Avoid a dup2(2) in apply_filter() - start_command() can do it for us. t0021-conversion.sh: Test that the clean filter really cleans content. upload-pack: Run rev-list in an asynchronous function. upload-pack: Move the revision walker into a separate function. Use the asyncronous function infrastructure in builtin-fetch-pack.c. Add infrastructure to run a function asynchronously. upload-pack: Use start_command() to run pack-objects in create_pack_file(). Have start_command() create a pipe to read the stderr of the child. Use start_comand() in builtin-fetch-pack.c instead of explicit fork/exec. Use run_command() to spawn external diff programs instead of fork/exec. Use start_command() to run content filters instead of explicit fork/exec. Use start_command() in git_connect() instead of explicit fork/exec. Change git_connect() to return a struct child_process instead of a pid_t. Conflicts: builtin-fetch-pack.c --- 4340a813d007b592534de664d152d66417dbe809 diff --cc builtin-fetch-pack.c index 8753840a8,51d8a3279..862652be9 --- a/builtin-fetch-pack.c +++ b/builtin-fetch-pack.c @@@ -774,10 -746,8 +747,8 @@@ struct ref *fetch_pack(struct fetch_pac st.st_mtime = 0; } - pid = git_connect(fd, (char *)dest, args.uploadpack, - conn = git_connect(fd, (char *)dest, uploadpack, ++ conn = git_connect(fd, (char *)dest, args.uploadpack, args.verbose ? CONNECT_VERBOSE : 0); - if (pid < 0) - return NULL; if (heads && nr_heads) nr_heads = remove_duplicates(nr_heads, heads); ref = do_fetch_pack(fd, nr_heads, heads, pack_lockfile);