diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2007-02-13 09:23:59 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-02-13 10:12:37 -0800 |
commit | bd3a5b5ee5cc627dc278d2028fb017161705fe02 (patch) | |
tree | 59cfa8118819e1f2006311c075c905ebe4ca64c3 | |
parent | Update RPM core package description (diff) | |
download | tgif-bd3a5b5ee5cc627dc278d2028fb017161705fe02.tar.xz |
Mark places that need blob munging later for CRLF conversion.
Here's a patch that I think we can merge right now. There may be
other places that need this, but this at least points out the
three places that read/write working tree files for git
update-index, checkout and diff respectively. That should cover
a lot of it [jc: git-apply uses an entirely different codepath
both for reading and writing].
Some day we can actually implement it. In the meantime, this
points out a place for people to start. We *can* even start with
a really simple "we do CRLF conversion automatically, regardless
of filename" kind of approach, that just look at the data (all
three cases have the _full_ file data already in memory) and
says "ok, this is text, so let's convert to/from DOS format
directly".
THAT somebody can write in ten minutes, and it would already
make git much nicer on a DOS/Windows platform, I suspect.
And it would be totally zero-cost if you just make it a config
option (but please make it dynamic with the _default_ just being
0/1 depending on whether it's UNIX/Windows, just so that UNIX
people can _test_ it easily).
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | diff.c | 1 | ||||
-rw-r--r-- | entry.c | 1 | ||||
-rw-r--r-- | sha1_file.c | 1 |
3 files changed, 3 insertions, 0 deletions
@@ -1364,6 +1364,7 @@ int diff_populate_filespec(struct diff_filespec *s, int size_only) s->data = xmmap(NULL, s->size, PROT_READ, MAP_PRIVATE, fd, 0); close(fd); s->should_munmap = 1; + /* FIXME! CRLF -> LF conversion goes here, based on "s->path" */ } else { char type[20]; @@ -89,6 +89,7 @@ static int write_entry(struct cache_entry *ce, char *path, struct checkout *stat return error("git-checkout-index: unable to create file %s (%s)", path, strerror(errno)); } + /* FIXME: LF -> CRLF conversion goes here, based on "ce->name" */ wrote = write_in_full(fd, new, size); close(fd); free(new); diff --git a/sha1_file.c b/sha1_file.c index 0d4bf80e74..8ad7fad825 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -2091,6 +2091,7 @@ int index_fd(unsigned char *sha1, int fd, struct stat *st, int write_object, con if (!type) type = blob_type; + /* FIXME: CRLF -> LF conversion here for blobs! We'll need the path! */ if (write_object) ret = write_sha1_file(buf, size, type, sha1); else |