[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.119.126.72: ~ $
Git-send-pack internals
=======================

Overall operation
-----------------

. Connects to the remote side and invokes git-receive-pack.

. Learns what refs the remote has and what commit they point at.
  Matches them to the refspecs we are pushing.

. Checks if there are non-fast-forwards.  Unlike fetch-pack,
  the repository send-pack runs in is supposed to be a superset
  of the recipient in fast-forward cases, so there is no need
  for want/have exchanges, and fast-forward check can be done
  locally.  Tell the result to the other end.

. Calls pack_objects() which generates a packfile and sends it
  over to the other end.

. If the remote side is new enough (v1.1.0 or later), wait for
  the unpack and hook status from the other end.

. Exit with appropriate error codes.


Pack_objects pipeline
---------------------

This function gets one file descriptor (`fd`) which is either a
socket (over the network) or a pipe (local).  What's written to
this fd goes to git-receive-pack to be unpacked.

    send-pack ---> fd ---> receive-pack

The function pack_objects creates a pipe and then forks.  The
forked child execs pack-objects with --revs to receive revision
parameters from its standard input. This process will write the
packfile to the other end.

    send-pack
       |
       pack_objects() ---> fd ---> receive-pack
          | ^ (pipe)
	  v |
         (child)

The child dup2's to arrange its standard output to go back to
the other end, and read its standard input to come from the
pipe.  After that it exec's pack-objects.  On the other hand,
the parent process, before starting to feed the child pipeline,
closes the reading side of the pipe and fd to receive-pack.

    send-pack
       |
       pack_objects(parent)
          |
	  v [0]
         pack-objects [0] ---> receive-pack


[jc: the pipeline was much more complex and needed documentation before
 I understood an earlier bug, but now it is trivial and straightforward.]

Filemanager

Name Type Size Permission Actions
api-allocation-growing.html File 17.55 KB 0644
api-allocation-growing.txt File 1019 B 0644
api-argv-array.html File 19.44 KB 0644
api-argv-array.txt File 2.12 KB 0644
api-builtin.html File 19.43 KB 0644
api-builtin.txt File 2 KB 0644
api-config.html File 23.39 KB 0644
api-config.txt File 5.18 KB 0644
api-credentials.html File 27.9 KB 0644
api-credentials.txt File 8.87 KB 0644
api-decorate.html File 16.23 KB 0644
api-decorate.txt File 60 B 0644
api-diff.html File 24.32 KB 0644
api-diff.txt File 5.22 KB 0644
api-directory-listing.html File 20.75 KB 0644
api-directory-listing.txt File 2.71 KB 0644
api-gitattributes.html File 21.9 KB 0644
api-gitattributes.txt File 3.62 KB 0644
api-grep.html File 16.31 KB 0644
api-grep.txt File 76 B 0644
api-hash.html File 18.42 KB 0644
api-hash.txt File 1.4 KB 0644
api-hashmap.html File 35.57 KB 0644
api-hashmap.txt File 7.71 KB 0644
api-history-graph.html File 24.08 KB 0644
api-history-graph.txt File 5.9 KB 0644
api-in-core-index.html File 16.96 KB 0644
api-in-core-index.txt File 457 B 0644
api-index-skel.txt File 431 B 0644
api-index.html File 18.45 KB 0644
api-index.sh File 611 B 0644
api-index.txt File 1.68 KB 0644
api-lockfile.html File 20.05 KB 0644
api-lockfile.txt File 2.92 KB 0644
api-merge.html File 21.36 KB 0644
api-merge.txt File 3.3 KB 0644
api-object-access.html File 16.73 KB 0644
api-object-access.txt File 342 B 0644
api-parse-options.html File 31.03 KB 0644
api-parse-options.txt File 9.36 KB 0644
api-quote.html File 16.42 KB 0644
api-quote.txt File 145 B 0644
api-ref-iteration.html File 19.71 KB 0644
api-ref-iteration.txt File 2.41 KB 0644
api-remote.html File 21.26 KB 0644
api-remote.txt File 3.3 KB 0644
api-revision-walking.html File 19.76 KB 0644
api-revision-walking.txt File 2.39 KB 0644
api-run-command.html File 28.25 KB 0644
api-run-command.txt File 8.08 KB 0644
api-setup.html File 16.51 KB 0644
api-setup.txt File 180 B 0644
api-sha1-array.html File 19.39 KB 0644
api-sha1-array.txt File 2.25 KB 0644
api-sigchain.html File 17.74 KB 0644
api-sigchain.txt File 1.34 KB 0644
api-strbuf.html File 32.15 KB 0644
api-strbuf.txt File 10.17 KB 0644
api-string-list.html File 26.42 KB 0644
api-string-list.txt File 6.84 KB 0644
api-tree-walking.html File 23.17 KB 0644
api-tree-walking.txt File 4.27 KB 0644
api-xdiff-interface.html File 16.3 KB 0644
api-xdiff-interface.txt File 139 B 0644
index-format.html File 27.12 KB 0644
index-format.txt File 6.29 KB 0644
pack-format.html File 24.08 KB 0644
pack-format.txt File 5.54 KB 0644
pack-heuristics.html File 42.74 KB 0644
pack-heuristics.txt File 17.77 KB 0644
pack-protocol.html File 43.12 KB 0644
pack-protocol.txt File 20.99 KB 0644
protocol-capabilities.html File 25.41 KB 0644
protocol-capabilities.txt File 7.09 KB 0644
protocol-common.html File 20.08 KB 0644
protocol-common.txt File 2.7 KB 0644
racy-git.html File 26.85 KB 0644
racy-git.txt File 8.63 KB 0644
send-pack-pipeline.html File 18.73 KB 0644
send-pack-pipeline.txt File 1.92 KB 0644
shallow.html File 18.86 KB 0644
shallow.txt File 2.3 KB 0644
trivial-merge.html File 21.62 KB 0644
trivial-merge.txt File 4.16 KB 0644