Add support for pushing to a remote repository using HTTP/DAV
Add support for pushing to a remote repository using HTTP/DAV Signed-off-by: Nick Hengeveld <nickh@reactrix.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
9e5d2b4096
commit
58e60dd203
89
Documentation/git-http-push.txt
Normal file
89
Documentation/git-http-push.txt
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
git-http-push(1)
|
||||||
|
================
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
git-http-push - Push missing objects using HTTP/DAV.
|
||||||
|
|
||||||
|
|
||||||
|
SYNOPSIS
|
||||||
|
--------
|
||||||
|
'git-http-push' [--complete] [--force] [--verbose] <url> <ref> [<ref>...]
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
Sends missing objects to remote repository, and updates the
|
||||||
|
remote branch.
|
||||||
|
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
-------
|
||||||
|
--complete::
|
||||||
|
Do not assume that the remote repository is complete in its
|
||||||
|
current state, and verify all objects in the entire local
|
||||||
|
ref's history exist in the remote repository.
|
||||||
|
|
||||||
|
--force::
|
||||||
|
Usually, the command refuses to update a remote ref that
|
||||||
|
is not an ancestor of the local ref used to overwrite it.
|
||||||
|
This flag disables the check. What this means is that
|
||||||
|
the remote repository can lose commits; use it with
|
||||||
|
care.
|
||||||
|
|
||||||
|
--verbose::
|
||||||
|
Report the list of objects being walked locally and the
|
||||||
|
list of objects successfully sent to the remote repository.
|
||||||
|
|
||||||
|
<ref>...:
|
||||||
|
The remote refs to update.
|
||||||
|
|
||||||
|
|
||||||
|
Specifying the Refs
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
A '<ref>' specification can be either a single pattern, or a pair
|
||||||
|
of such patterns separated by a colon ":" (this means that a ref name
|
||||||
|
cannot have a colon in it). A single pattern '<name>' is just a
|
||||||
|
shorthand for '<name>:<name>'.
|
||||||
|
|
||||||
|
Each pattern pair consists of the source side (before the colon)
|
||||||
|
and the destination side (after the colon). The ref to be
|
||||||
|
pushed is determined by finding a match that matches the source
|
||||||
|
side, and where it is pushed is determined by using the
|
||||||
|
destination side.
|
||||||
|
|
||||||
|
- It is an error if <src> does not match exactly one of the
|
||||||
|
local refs.
|
||||||
|
|
||||||
|
- If <dst> does not match any remote ref, either
|
||||||
|
|
||||||
|
* it has to start with "refs/"; <dst> is used as the
|
||||||
|
destination literally in this case.
|
||||||
|
|
||||||
|
* <src> == <dst> and the ref that matched the <src> must not
|
||||||
|
exist in the set of remote refs; the ref matched <src>
|
||||||
|
locally is used as the name of the destination.
|
||||||
|
|
||||||
|
Without '--force', the <src> ref is stored at the remote only if
|
||||||
|
<dst> does not exist, or <dst> is a proper subset (i.e. an
|
||||||
|
ancestor) of <src>. This check, known as "fast forward check",
|
||||||
|
is performed in order to avoid accidentally overwriting the
|
||||||
|
remote ref and lose other peoples' commits from there.
|
||||||
|
|
||||||
|
With '--force', the fast forward check is disabled for all refs.
|
||||||
|
|
||||||
|
Optionally, a <ref> parameter can be prefixed with a plus '+' sign
|
||||||
|
to disable the fast-forward check only on that ref.
|
||||||
|
|
||||||
|
|
||||||
|
Author
|
||||||
|
------
|
||||||
|
Written by Nick Hengeveld <nickh@reactrix.com>
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
--------------
|
||||||
|
Documentation by Nick Hengeveld
|
||||||
|
|
||||||
|
GIT
|
||||||
|
---
|
||||||
|
Part of the gitlink:git[7] suite
|
13
Makefile
13
Makefile
@ -6,12 +6,16 @@
|
|||||||
# Define NO_OPENSSL environment variable if you do not have OpenSSL. You will
|
# Define NO_OPENSSL environment variable if you do not have OpenSSL. You will
|
||||||
# miss out git-rev-list --merge-order. This also implies MOZILLA_SHA1.
|
# miss out git-rev-list --merge-order. This also implies MOZILLA_SHA1.
|
||||||
#
|
#
|
||||||
# Define NO_CURL if you do not have curl installed. git-http-pull is not
|
# Define NO_CURL if you do not have curl installed. git-http-pull and
|
||||||
# built, and you cannot use http:// and https:// transports.
|
# git-http-push are not built, and you cannot use http:// and https://
|
||||||
|
# transports.
|
||||||
#
|
#
|
||||||
# Define CURLDIR=/foo/bar if your curl header and library files are in
|
# Define CURLDIR=/foo/bar if your curl header and library files are in
|
||||||
# /foo/bar/include and /foo/bar/lib directories.
|
# /foo/bar/include and /foo/bar/lib directories.
|
||||||
#
|
#
|
||||||
|
# Define NO_EXPAT if you do not have expat installed. git-http-push is
|
||||||
|
# not built, and you cannot push using http:// and https:// transports.
|
||||||
|
#
|
||||||
# Define NO_STRCASESTR if you don't have strcasestr.
|
# Define NO_STRCASESTR if you don't have strcasestr.
|
||||||
#
|
#
|
||||||
# Define PPC_SHA1 environment variable when running make to make use of
|
# Define PPC_SHA1 environment variable when running make to make use of
|
||||||
@ -223,6 +227,10 @@ ifndef NO_CURL
|
|||||||
CURL_LIBCURL = -lcurl
|
CURL_LIBCURL = -lcurl
|
||||||
endif
|
endif
|
||||||
PROGRAMS += git-http-fetch$X
|
PROGRAMS += git-http-fetch$X
|
||||||
|
ifndef NO_EXPAT
|
||||||
|
EXPAT_LIBEXPAT = -lexpat
|
||||||
|
PROGRAMS += git-http-push$X
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef SHELL_PATH
|
ifndef SHELL_PATH
|
||||||
@ -375,6 +383,7 @@ git-ssh-pull$X: rsh.o fetch.o
|
|||||||
git-ssh-push$X: rsh.o
|
git-ssh-push$X: rsh.o
|
||||||
|
|
||||||
git-http-fetch$X: LIBS += $(CURL_LIBCURL)
|
git-http-fetch$X: LIBS += $(CURL_LIBCURL)
|
||||||
|
git-http-push$X: LIBS += $(CURL_LIBCURL) $(EXPAT_LIBEXPAT)
|
||||||
git-rev-list$X: LIBS += $(OPENSSL_LIBSSL)
|
git-rev-list$X: LIBS += $(OPENSSL_LIBSSL)
|
||||||
|
|
||||||
init-db.o: init-db.c
|
init-db.o: init-db.c
|
||||||
|
1625
http-push.c
Normal file
1625
http-push.c
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user