Junio C Hamano | 781d8a2 | 2006-09-17 10:34:15 | [diff] [blame] | 1 | git-upload-archive(1) |
Junio C Hamano | ee61580 | 2015-10-29 21:45:26 | [diff] [blame] | 2 | ===================== |
Junio C Hamano | 781d8a2 | 2006-09-17 10:34:15 | [diff] [blame] | 3 | |
| 4 | NAME |
| 5 | ---- |
Junio C Hamano | 7c73c66 | 2007-01-19 00:37:50 | [diff] [blame] | 6 | git-upload-archive - Send archive back to git-archive |
Junio C Hamano | 781d8a2 | 2006-09-17 10:34:15 | [diff] [blame] | 7 | |
| 8 | |
| 9 | SYNOPSIS |
| 10 | -------- |
Junio C Hamano | 15567bc | 2011-07-23 00:51:59 | [diff] [blame] | 11 | [verse] |
Junio C Hamano | cf9c773 | 2022-10-28 18:56:06 | [diff] [blame] | 12 | 'git upload-archive' <repository> |
Junio C Hamano | 781d8a2 | 2006-09-17 10:34:15 | [diff] [blame] | 13 | |
| 14 | DESCRIPTION |
| 15 | ----------- |
Junio C Hamano | 1aa40d2 | 2010-01-21 17:46:43 | [diff] [blame] | 16 | Invoked by 'git archive --remote' and sends a generated archive to the |
Junio C Hamano | 076ffcc | 2013-02-06 05:13:21 | [diff] [blame] | 17 | other end over the Git protocol. |
Junio C Hamano | 781d8a2 | 2006-09-17 10:34:15 | [diff] [blame] | 18 | |
| 19 | This command is usually not invoked directly by the end user. The UI |
Junio C Hamano | 1aa40d2 | 2010-01-21 17:46:43 | [diff] [blame] | 20 | for the protocol is on the 'git archive' side, and the program pair |
Junio C Hamano | 781d8a2 | 2006-09-17 10:34:15 | [diff] [blame] | 21 | is meant to be used to get an archive from a remote repository. |
| 22 | |
Junio C Hamano | 81703b2 | 2014-03-14 22:00:27 | [diff] [blame] | 23 | SECURITY |
| 24 | -------- |
| 25 | |
| 26 | In order to protect the privacy of objects that have been removed from |
| 27 | history but may not yet have been pruned, `git-upload-archive` avoids |
| 28 | serving archives for commits and trees that are not reachable from the |
| 29 | repository's refs. However, because calculating object reachability is |
| 30 | computationally expensive, `git-upload-archive` implements a stricter |
| 31 | but easier-to-check set of rules: |
| 32 | |
| 33 | 1. Clients may request a commit or tree that is pointed to directly by |
| 34 | a ref. E.g., `git archive --remote=origin v1.0`. |
| 35 | |
| 36 | 2. Clients may request a sub-tree within a commit or tree using the |
| 37 | `ref:path` syntax. E.g., `git archive --remote=origin v1.0:Documentation`. |
| 38 | |
| 39 | 3. Clients may _not_ use other sha1 expressions, even if the end |
| 40 | result is reachable. E.g., neither a relative commit like `master^` |
| 41 | nor a literal sha1 like `abcd1234` is allowed, even if the result |
| 42 | is reachable from the refs. |
| 43 | |
| 44 | Note that rule 3 disallows many cases that do not have any privacy |
| 45 | implications. These rules are subject to change in future versions of |
| 46 | git, and the server accessed by `git archive --remote` may or may not |
| 47 | follow these exact rules. |
| 48 | |
| 49 | If the config option `uploadArchive.allowUnreachable` is true, these |
| 50 | rules are ignored, and clients may use arbitrary sha1 expressions. |
| 51 | This is useful if you do not care about the privacy of unreachable |
| 52 | objects, or if your object database is already publicly available for |
| 53 | access via non-smart-http. |
| 54 | |
Junio C Hamano | 781d8a2 | 2006-09-17 10:34:15 | [diff] [blame] | 55 | OPTIONS |
| 56 | ------- |
Junio C Hamano | cf9c773 | 2022-10-28 18:56:06 | [diff] [blame] | 57 | <repository>:: |
Junio C Hamano | 781d8a2 | 2006-09-17 10:34:15 | [diff] [blame] | 58 | The repository to get a tar archive from. |
| 59 | |
Junio C Hamano | 781d8a2 | 2006-09-17 10:34:15 | [diff] [blame] | 60 | GIT |
| 61 | --- |
Junio C Hamano | f7c042d | 2008-06-06 22:50:53 | [diff] [blame] | 62 | Part of the linkgit:git[1] suite |