From: Dmitry Potapov <dpotapov@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Alexander Litvinov <litvinov2004@gmail.com>,
git@vger.kernel.org, Eric Wong <normalperson@yhbt.net>
Subject: Re: [PATCH] git-svn now work with crlf convertion enabled.
Date: Sat, 2 Aug 2008 02:09:32 +0400 [thread overview]
Message-ID: <20080801220932.GK7008@dpotapov.dyndns.org> (raw)
In-Reply-To: <7vmyjwserv.fsf@gitster.siamese.dyndns.org>
On Fri, Aug 01, 2008 at 12:42:44PM -0700, Junio C Hamano wrote:
>
> Ok, earlier I was confused who was proposing what for what purpose, but
> that one was not just "a bit hackish" but an unacceptable hack ;-)
Thanks for correct my wording ;-)
>
> Perhaps you would want to do the s/write_object/flags/ conversion, like
> this?
Yes, it was my prefered choice to change these index_xx functions.
I have applied your patch and then corrected mine to use flags.
See below.
I wonder if something should be done about other places where index_xx
functions are called. I have looked at them and all they use either 0 or
1 (boolean expression which will be evaluated to 0 or 1), so they should
work as is, but I can correct them to use HASH_OBJECT_DO_CREATE instead
of 1 if it helps with readability.
-- 8< --
From: Dmitry Potapov <dpotapov@gmail.com>
Date: Thu, 31 Jul 2008 21:10:26 +0400
Subject: [PATCH] hash-object --no-filters
The --no-filters option makes git hash-object to work as there were no
input filters. This option is useful for importers such as git-svn to
put new version of files as is even if autocrlf is set.
Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
---
Documentation/git-hash-object.txt | 6 ++++++
hash-object.c | 28 +++++++++++++++-------------
2 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/Documentation/git-hash-object.txt b/Documentation/git-hash-object.txt
index ac928e1..69a17c7 100644
--- a/Documentation/git-hash-object.txt
+++ b/Documentation/git-hash-object.txt
@@ -35,6 +35,12 @@ OPTIONS
--stdin-paths::
Read file names from stdin instead of from the command-line.
+--no-filters::
+ If this option is given then the file is hashed as is ignoring
+ all filters specified in the configuration, including crlf
+ conversion. If the file is read from standard input then no
+ filters is always implied.
+
Author
------
Written by Junio C Hamano <gitster@pobox.com>
diff --git a/hash-object.c b/hash-object.c
index 46c06a9..2dd7283 100644
--- a/hash-object.c
+++ b/hash-object.c
@@ -8,7 +8,7 @@
#include "blob.h"
#include "quote.h"
-static void hash_object(const char *path, enum object_type type, int write_object)
+static void hash_object(const char *path, enum object_type type, int flags)
{
int fd;
struct stat st;
@@ -16,23 +16,23 @@ static void hash_object(const char *path, enum object_type type, int write_objec
fd = open(path, O_RDONLY);
if (fd < 0 ||
fstat(fd, &st) < 0 ||
- index_fd(sha1, fd, &st, write_object, type, path))
- die(write_object
+ index_fd(sha1, fd, &st, flags, type, path))
+ die((flags & HASH_OBJECT_DO_CREATE)
? "Unable to add %s to database"
: "Unable to hash %s", path);
printf("%s\n", sha1_to_hex(sha1));
maybe_flush_or_die(stdout, "hash to stdout");
}
-static void hash_stdin(const char *type, int write_object)
+static void hash_stdin(const char *type, int flags)
{
unsigned char sha1[20];
- if (index_pipe(sha1, 0, type, write_object))
+ if (index_pipe(sha1, 0, type, flags))
die("Unable to add stdin to database");
printf("%s\n", sha1_to_hex(sha1));
}
-static void hash_stdin_paths(const char *type, int write_objects)
+static void hash_stdin_paths(const char *type, int flags)
{
struct strbuf buf, nbuf;
@@ -45,7 +45,7 @@ static void hash_stdin_paths(const char *type, int write_objects)
die("line is badly quoted");
strbuf_swap(&buf, &nbuf);
}
- hash_object(buf.buf, type_from_string(type), write_objects);
+ hash_object(buf.buf, type_from_string(type), flags);
}
strbuf_release(&buf);
strbuf_release(&nbuf);
@@ -58,7 +58,7 @@ int main(int argc, char **argv)
{
int i;
const char *type = blob_type;
- int write_object = 0;
+ int flags = 0;
const char *prefix = NULL;
int prefix_length = -1;
int no_more_flags = 0;
@@ -80,7 +80,7 @@ int main(int argc, char **argv)
prefix_length =
prefix ? strlen(prefix) : 0;
}
- write_object = 1;
+ flags |= HASH_OBJECT_DO_CREATE;
}
else if (!strcmp(argv[i], "--")) {
no_more_flags = 1;
@@ -104,6 +104,8 @@ int main(int argc, char **argv)
die("Multiple --stdin arguments are not supported");
hashstdin = 1;
}
+ else if (!strcmp(argv[i], "--no-filters"))
+ flags |= HASH_OBJECT_LITERALLY;
else
usage(hash_object_usage);
}
@@ -116,21 +118,21 @@ int main(int argc, char **argv)
}
if (hashstdin) {
- hash_stdin(type, write_object);
+ hash_stdin(type, flags);
hashstdin = 0;
}
if (0 <= prefix_length)
arg = prefix_filename(prefix, prefix_length,
arg);
- hash_object(arg, type_from_string(type), write_object);
+ hash_object(arg, type_from_string(type), flags);
no_more_flags = 1;
}
}
if (stdin_paths)
- hash_stdin_paths(type, write_object);
+ hash_stdin_paths(type, flags);
if (hashstdin)
- hash_stdin(type, write_object);
+ hash_stdin(type, flags);
return 0;
}
--
1.6.0.rc1.33.gb756f
next prev parent reply other threads:[~2008-08-01 22:10 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-23 8:44 git-svn does not seems to work with crlf convertion enabled Alexander Litvinov
2008-07-23 9:18 ` Johannes Schindelin
2008-07-23 11:52 ` Alexander Litvinov
2008-07-23 12:57 ` Johannes Schindelin
2008-07-23 15:49 ` Avery Pennarun
2008-07-23 16:07 ` Johannes Schindelin
2008-07-24 3:13 ` Alexander Litvinov
2008-08-06 11:15 ` Petr Baudis
2008-08-06 12:35 ` Peter Harris
2008-08-06 12:43 ` Johannes Schindelin
2008-08-06 13:51 ` git-svn on MSysGit and why is it (going to be?) unsupported Petr Baudis
2008-08-06 15:23 ` Avery Pennarun
2008-08-06 16:11 ` git-svn does not seems to work with crlf convertion enabled Dmitry Potapov
2008-07-24 14:24 ` Dmitry Potapov
2008-07-24 14:40 ` Johannes Schindelin
2008-07-24 16:28 ` Avery Pennarun
2008-07-30 4:37 ` Alexander Litvinov
2008-07-31 5:43 ` [PATCH] git-svn now " Alexander Litvinov
2008-07-31 5:57 ` Alexander Litvinov
2008-07-31 10:45 ` Dmitry Potapov
2008-07-31 19:09 ` [RFC] hash-object --no-filters Dmitry Potapov
2008-08-01 3:23 ` [PATCH] git-svn now work with crlf convertion enabled Alexander Litvinov
2008-08-01 5:09 ` Junio C Hamano
2008-08-01 7:44 ` Dmitry Potapov
2008-08-01 11:27 ` Alexander Litvinov
2008-08-01 7:47 ` Dmitry Potapov
2008-08-01 8:08 ` Junio C Hamano
2008-08-01 9:24 ` Dmitry Potapov
2008-08-01 19:42 ` Junio C Hamano
2008-08-01 22:09 ` Dmitry Potapov [this message]
2008-08-01 22:14 ` Junio C Hamano
2008-08-01 23:10 ` Dmitry Potapov
2008-08-02 17:28 ` [PATCH] hash-object --no-filters Junio C Hamano
2008-08-03 5:42 ` Dmitry Potapov
2008-08-03 5:56 ` Dmitry Potapov
2008-08-03 14:36 ` [PATCH 1/5] correct argument checking test for git hash-object Dmitry Potapov
2008-08-03 14:36 ` [PATCH 2/5] correct usage help string for git-hash-object Dmitry Potapov
2008-08-03 14:36 ` [PATCH 3/5] use parse_options() in git hash-object Dmitry Potapov
2008-08-03 14:36 ` [PATCH 4/5] add --path option to " Dmitry Potapov
2008-08-03 14:36 ` [PATCH 5/5] add --no-filters " Dmitry Potapov
2008-08-03 20:44 ` [PATCH] hash-object --no-filters Junio C Hamano
2008-08-01 11:11 ` [PATCH] git-svn now work with crlf convertion enabled Alexander Litvinov
2008-08-01 12:36 ` Dmitry Potapov
2008-08-04 3:10 ` Alexander Litvinov
2008-08-04 0:48 ` Eric Wong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080801220932.GK7008@dpotapov.dyndns.org \
--to=dpotapov@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=litvinov2004@gmail.com \
--cc=normalperson@yhbt.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).