aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/git-cvsimport.txt6
-rw-r--r--Documentation/git-cvsserver.txt3
-rw-r--r--Documentation/gitattributes.txt45
-rw-r--r--Documentation/gitcvs-migration.txt5
-rw-r--r--Documentation/pretty-formats.txt8
-rw-r--r--builtin-commit.c11
-rw-r--r--builtin-log.c16
-rw-r--r--convert.c25
-rw-r--r--diff.c8
-rw-r--r--http.c36
-rw-r--r--transport.c4
11 files changed, 75 insertions, 92 deletions
diff --git a/Documentation/git-cvsimport.txt b/Documentation/git-cvsimport.txt
index 1614e8df8..b7a8c10b8 100644
--- a/Documentation/git-cvsimport.txt
+++ b/Documentation/git-cvsimport.txt
@@ -31,6 +31,12 @@ to work with; after that, you need to 'git-merge' incremental imports, or
any CVS branches, yourself. It is advisable to specify a named remote via
-r to separate and protect the incoming branches.
+If you intend to set up a shared public repository that all developers can
+read/write, or if you want to use linkgit:git-cvsserver[1], then you
+probably want to make a bare clone of the imported repository,
+and use the clone as the shared repository.
+See linkgit:gitcvs-migration[7].
+
OPTIONS
-------
diff --git a/Documentation/git-cvsserver.txt b/Documentation/git-cvsserver.txt
index 2aacdc628..c2d3c90d2 100644
--- a/Documentation/git-cvsserver.txt
+++ b/Documentation/git-cvsserver.txt
@@ -133,6 +133,9 @@ write access to the log file and to the database (see
<<dbbackend,Database Backend>>. If you want to offer write access over
SSH, the users of course also need write access to the git repository itself.
+You also need to ensure that each repository is "bare" (without a git index
+file) for `cvs commit` to work. See linkgit:gitcvs-migration[7].
+
[[configaccessmethod]]
All configuration variables can also be overridden for a specific method of
access. Valid method names are "ext" (for SSH access) and "pserver". The
diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt
index 6a246eb1f..d7b41142d 100644
--- a/Documentation/gitattributes.txt
+++ b/Documentation/gitattributes.txt
@@ -450,6 +450,29 @@ String::
variable.
+Creating an archive
+~~~~~~~~~~~~~~~~~~~
+
+`export-ignore`
+^^^^^^^^^^^^^^^
+
+Files and directories with the attribute `export-ignore` won't be added to
+archive files.
+
+`export-subst`
+^^^^^^^^^^^^^^
+
+If the attribute `export-subst` is set for a file then git will expand
+several placeholders when adding this file to an archive. The
+expansion depends on the availability of a commit ID, i.e., if
+linkgit:git-archive[1] has been given a tree instead of a commit or a
+tag then no replacement will be done. The placeholders are the same
+as those for the option `--pretty=format:` of linkgit:git-log[1],
+except that they need to be wrapped like this: `$Format:PLACEHOLDERS$`
+in the file. E.g. the string `$Format:%H$` will be replaced by the
+commit hash.
+
+
EXAMPLE
-------
@@ -499,28 +522,6 @@ frotz unspecified
----------------------------------------------------------------
-Creating an archive
-~~~~~~~~~~~~~~~~~~~
-
-`export-ignore`
-^^^^^^^^^^^^^^^
-
-Files and directories with the attribute `export-ignore` won't be added to
-archive files.
-
-`export-subst`
-^^^^^^^^^^^^^^
-
-If the attribute `export-subst` is set for a file then git will expand
-several placeholders when adding this file to an archive. The
-expansion depends on the availability of a commit ID, i.e., if
-'git-archive' has been given a tree instead of a commit or a
-tag then no replacement will be done. The placeholders are the same
-as those for the option `--pretty=format:` of linkgit:git-log[1],
-except that they need to be wrapped like this: `$Format:PLACEHOLDERS$`
-in the file. E.g. the string `$Format:%H$` will be replaced by the
-commit hash.
-
GIT
---
diff --git a/Documentation/gitcvs-migration.txt b/Documentation/gitcvs-migration.txt
index 2eb6972a9..aaa7ef737 100644
--- a/Documentation/gitcvs-migration.txt
+++ b/Documentation/gitcvs-migration.txt
@@ -143,6 +143,11 @@ work, you must not modify the imported branches; instead, create new
branches for your own changes, and merge in the imported branches as
necessary.
+If you want a shared repository, you will need to make a bare clone
+of the imported directory, as described above. Then treat the imported
+directory as another development clone for purposes of merging
+incremental imports.
+
Advanced Shared Repository Management
-------------------------------------
diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt
index ec3755579..69e6d2fa4 100644
--- a/Documentation/pretty-formats.txt
+++ b/Documentation/pretty-formats.txt
@@ -30,7 +30,7 @@ This is designed to be as compact as possible.
commit <sha1>
Author: <author>
- Date: <date>
+ Date: <author date>
<title line>
@@ -50,9 +50,9 @@ This is designed to be as compact as possible.
commit <sha1>
Author: <author>
- AuthorDate: <date & time>
+ AuthorDate: <author date>
Commit: <committer>
- CommitDate: <date & time>
+ CommitDate: <committer date>
<title line>
@@ -62,7 +62,7 @@ This is designed to be as compact as possible.
From <sha1> <date>
From: <author>
- Date: <date & time>
+ Date: <author date>
Subject: [PATCH] <title line>
<full commit message>
diff --git a/builtin-commit.c b/builtin-commit.c
index e3ad38b3b..745c11e77 100644
--- a/builtin-commit.c
+++ b/builtin-commit.c
@@ -45,7 +45,8 @@ static enum {
COMMIT_PARTIAL,
} commit_style;
-static char *logfile, *force_author, *template_file;
+static char *logfile, *force_author;
+static const char *template_file;
static char *edit_message, *use_message;
static char *author_name, *author_email, *author_date;
static int all, edit_flag, also, interactive, only, amend, signoff;
@@ -877,12 +878,8 @@ static void print_summary(const char *prefix, const unsigned char *sha1)
int git_commit_config(const char *k, const char *v, void *cb)
{
- if (!strcmp(k, "commit.template")) {
- if (!v)
- return config_error_nonbool(v);
- template_file = xstrdup(v);
- return 0;
- }
+ if (!strcmp(k, "commit.template"))
+ return git_config_string(&template_file, k, v);
return git_status_config(k, v, cb);
}
diff --git a/builtin-log.c b/builtin-log.c
index 9979e37f3..430d87661 100644
--- a/builtin-log.c
+++ b/builtin-log.c
@@ -234,12 +234,8 @@ static int git_log_config(const char *var, const char *value, void *cb)
{
if (!strcmp(var, "format.pretty"))
return git_config_string(&fmt_pretty, var, value);
- if (!strcmp(var, "format.subjectprefix")) {
- if (!value)
- config_error_nonbool(var);
- fmt_patch_subject_prefix = xstrdup(value);
- return 0;
- }
+ if (!strcmp(var, "format.subjectprefix"))
+ return git_config_string(&fmt_patch_subject_prefix, var, value);
if (!strcmp(var, "log.date"))
return git_config_string(&default_date_mode, var, value);
if (!strcmp(var, "log.showroot")) {
@@ -489,12 +485,8 @@ static int git_format_config(const char *var, const char *value, void *cb)
add_header(value);
return 0;
}
- if (!strcmp(var, "format.suffix")) {
- if (!value)
- return config_error_nonbool(var);
- fmt_patch_suffix = xstrdup(value);
- return 0;
- }
+ if (!strcmp(var, "format.suffix"))
+ return git_config_string(&fmt_patch_suffix, var, value);
if (!strcmp(var, "format.cc")) {
if (!value)
return config_error_nonbool(var);
diff --git a/convert.c b/convert.c
index 1c6684478..352b69d4c 100644
--- a/convert.c
+++ b/convert.c
@@ -319,8 +319,8 @@ static int apply_filter(const char *path, const char *src, size_t len,
static struct convert_driver {
const char *name;
struct convert_driver *next;
- char *smudge;
- char *clean;
+ const char *smudge;
+ const char *clean;
} *user_convert, **user_convert_tail;
static int read_convert_config(const char *var, const char *value, void *cb)
@@ -358,19 +358,12 @@ static int read_convert_config(const char *var, const char *value, void *cb)
* The command-line will not be interpolated in any way.
*/
- if (!strcmp("smudge", ep)) {
- if (!value)
- return config_error_nonbool(var);
- drv->smudge = strdup(value);
- return 0;
- }
+ if (!strcmp("smudge", ep))
+ return git_config_string(&drv->smudge, var, value);
+
+ if (!strcmp("clean", ep))
+ return git_config_string(&drv->clean, var, value);
- if (!strcmp("clean", ep)) {
- if (!value)
- return config_error_nonbool(var);
- drv->clean = strdup(value);
- return 0;
- }
return 0;
}
@@ -576,7 +569,7 @@ int convert_to_git(const char *path, const char *src, size_t len,
struct git_attr_check check[3];
int crlf = CRLF_GUESS;
int ident = 0, ret = 0;
- char *filter = NULL;
+ const char *filter = NULL;
setup_convert_check(check);
if (!git_checkattr(path, ARRAY_SIZE(check), check)) {
@@ -606,7 +599,7 @@ int convert_to_working_tree(const char *path, const char *src, size_t len, struc
struct git_attr_check check[3];
int crlf = CRLF_GUESS;
int ident = 0, ret = 0;
- char *filter = NULL;
+ const char *filter = NULL;
setup_convert_check(check);
if (!git_checkattr(path, ARRAY_SIZE(check), check)) {
diff --git a/diff.c b/diff.c
index 803fbba45..6a39b393f 100644
--- a/diff.c
+++ b/diff.c
@@ -153,12 +153,8 @@ int git_diff_ui_config(const char *var, const char *value, void *cb)
diff_auto_refresh_index = git_config_bool(var, value);
return 0;
}
- if (!strcmp(var, "diff.external")) {
- if (!value)
- return config_error_nonbool(var);
- external_diff_cmd_cfg = xstrdup(value);
- return 0;
- }
+ if (!strcmp(var, "diff.external"))
+ return git_config_string(&external_diff_cmd_cfg, var, value);
if (!prefixcmp(var, "diff.")) {
const char *ep = strrchr(var, '.');
diff --git a/http.c b/http.c
index ad1464041..1108ab4a3 100644
--- a/http.c
+++ b/http.c
@@ -13,14 +13,14 @@ static CURL *curl_default;
char curl_errorstr[CURL_ERROR_SIZE];
static int curl_ssl_verify = -1;
-static char *ssl_cert = NULL;
+static const char *ssl_cert = NULL;
#if LIBCURL_VERSION_NUM >= 0x070902
-static char *ssl_key = NULL;
+static const char *ssl_key = NULL;
#endif
#if LIBCURL_VERSION_NUM >= 0x070908
-static char *ssl_capath = NULL;
+static const char *ssl_capath = NULL;
#endif
-static char *ssl_cainfo = NULL;
+static const char *ssl_cainfo = NULL;
static long curl_low_speed_limit = -1;
static long curl_low_speed_time = -1;
static int curl_ftp_no_epsv = 0;
@@ -101,39 +101,27 @@ static int http_options(const char *var, const char *value, void *cb)
}
if (!strcmp("http.sslcert", var)) {
- if (ssl_cert == NULL) {
- if (!value)
- return config_error_nonbool(var);
- ssl_cert = xstrdup(value);
- }
+ if (ssl_cert == NULL)
+ return git_config_string(&ssl_cert, var, value);
return 0;
}
#if LIBCURL_VERSION_NUM >= 0x070902
if (!strcmp("http.sslkey", var)) {
- if (ssl_key == NULL) {
- if (!value)
- return config_error_nonbool(var);
- ssl_key = xstrdup(value);
- }
+ if (ssl_key == NULL)
+ return git_config_string(&ssl_key, var, value);
return 0;
}
#endif
#if LIBCURL_VERSION_NUM >= 0x070908
if (!strcmp("http.sslcapath", var)) {
- if (ssl_capath == NULL) {
- if (!value)
- return config_error_nonbool(var);
- ssl_capath = xstrdup(value);
- }
+ if (ssl_capath == NULL)
+ return git_config_string(&ssl_capath, var, value);
return 0;
}
#endif
if (!strcmp("http.sslcainfo", var)) {
- if (ssl_cainfo == NULL) {
- if (!value)
- return config_error_nonbool(var);
- ssl_cainfo = xstrdup(value);
- }
+ if (ssl_cainfo == NULL)
+ return git_config_string(&ssl_cainfo, var, value);
return 0;
}
diff --git a/transport.c b/transport.c
index 4145eed97..6eb65b873 100644
--- a/transport.c
+++ b/transport.c
@@ -645,7 +645,9 @@ static int fetch_refs_via_pack(struct transport *transport,
args.lock_pack = 1;
args.use_thin_pack = data->thin;
args.include_tag = data->followtags;
- args.verbose = transport->verbose > 0;
+ args.verbose = (transport->verbose > 0);
+ args.quiet = args.no_progress = (transport->verbose < 0);
+ args.no_progress = !isatty(1);
args.depth = data->depth;
for (i = 0; i < nr_heads; i++)