Re: mingw, windows, crlf/lf, and git

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linus Torvalds
Date: Monday, February 12, 2007 - 4:25 pm

On Mon, 12 Feb 2007, Linus Torvalds wrote:

In fact, for git-update-index, I think it's *literally* as easy as just 
changing "index_fd()" to convert the buffer on-the-fly as needed, before 
we actually call "write_sha1_file()" or "hash_sha1_file()".

So we'd just need to pass in the information about whether it's binary or 
not, and then do something like

	@@ -2091,6 +2091,10 @@ int index_fd(unsigned char *sha1, int fd, struct stat *st, int write_object, con
	 
	 	if (!type)
	 		type = blob_type;
	+#ifndef __UNIX__
	+	if (text && !strcmp(type, blob_type))
	+		convert_crlf_to_lf(&buf, &size);
	+#endif
	 	if (write_object)
	 		ret = write_sha1_file(buf, size, type, sha1);
	 	else

and that would take care of a lot of things (yeah, I'd not do it that way 
in practice, but really doesn't look that nasty - it's actually much 
nastier to have to look up the text/binary type in the first place).

Something similar looks to be true in diff generation. The core "compare 
two SHA1's at a time" doesn't need any changes, but the code that actually 
reads in the temporary file from disk obviously does. But even that is 
just _one_ point, afaik - diff_populate_filespec()":

	@@ -1362,6 +1362,10 @@ int diff_populate_filespec(struct diff_filespec *s, int size_only)
	 		if (fd < 0)
	 			goto err_empty;
	 		s->data = xmmap(NULL, s->size, PROT_READ, MAP_PRIVATE, fd, 0);
	+#ifndef __UNIX__
	+		if (text)
	+			convert_crlf_to_lf(&s->data, &s->size);
	+#endif
	 		close(fd);
	 		s->should_munmap = 1;
	 	}

(and again, that's not real code, it would also need to change the 
"should_munmap" flag to indicate the state of the _new_ "data" thing.

		Linus
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
mingw, windows, crlf/lf, and git, Mark Levedahl, (Sun Feb 11, 4:13 pm)
Re: mingw, windows, crlf/lf, and git, Johannes Schindelin, (Sun Feb 11, 4:34 pm)
Re: mingw, windows, crlf/lf, and git, Robin Rosenberg, (Sun Feb 11, 5:14 pm)
Re: mingw, windows, crlf/lf, and git, Mark Levedahl, (Sun Feb 11, 7:37 pm)
Re: mingw, windows, crlf/lf, and git, Theodore Tso, (Sun Feb 11, 9:24 pm)
Re: mingw, windows, crlf/lf, and git, David Lang, (Mon Feb 12, 12:28 am)
Re: mingw, windows, crlf/lf, and git, Johannes Schindelin, (Mon Feb 12, 4:36 am)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Mon Feb 12, 10:20 am)
Re: mingw, windows, crlf/lf, and git, Johannes Schindelin, (Mon Feb 12, 3:37 pm)
Re: mingw, windows, crlf/lf, and git, Junio C Hamano, (Mon Feb 12, 3:54 pm)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Mon Feb 12, 4:02 pm)
Re: mingw, windows, crlf/lf, and git, Junio C Hamano, (Mon Feb 12, 4:02 pm)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Mon Feb 12, 4:09 pm)
Re: mingw, windows, crlf/lf, and git, David Lang, (Mon Feb 12, 4:23 pm)
Re: mingw, windows, crlf/lf, and git, Johannes Schindelin, (Mon Feb 12, 4:24 pm)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Mon Feb 12, 4:25 pm)
Re: mingw, windows, crlf/lf, and git, Junio C Hamano, (Mon Feb 12, 4:42 pm)
Re: mingw, windows, crlf/lf, and git, David Lang, (Mon Feb 12, 4:46 pm)
Re: mingw, windows, crlf/lf, and git, Johannes Schindelin, (Mon Feb 12, 4:50 pm)
Re: mingw, windows, crlf/lf, and git, Mark Levedahl, (Mon Feb 12, 5:32 pm)
Re: mingw, windows, crlf/lf, and git, Mark Levedahl, (Mon Feb 12, 5:59 pm)
Re: mingw, windows, crlf/lf, and git, Johannes Schindelin, (Mon Feb 12, 6:06 pm)
Re: mingw, windows, crlf/lf, and git, Shawn O. Pearce, (Mon Feb 12, 6:13 pm)
Re: mingw, windows, crlf/lf, and git, David Lang, (Mon Feb 12, 6:20 pm)
Re: mingw, windows, crlf/lf, and git, Mark Levedahl, (Mon Feb 12, 6:36 pm)
Re: mingw, windows, crlf/lf, and git, Junio C Hamano, (Mon Feb 12, 7:02 pm)
Re: mingw, windows, crlf/lf, and git, Mark Levedahl, (Mon Feb 12, 8:21 pm)
Re: mingw, windows, crlf/lf, and git, Alexander Litvinov, (Mon Feb 12, 8:32 pm)
Re: mingw, windows, crlf/lf, and git, Jeff King, (Mon Feb 12, 10:18 pm)
Re: mingw, windows, crlf/lf, and git, Junio C Hamano, (Mon Feb 12, 11:05 pm)
Re: mingw, windows, crlf/lf, and git, Johannes Schindelin, (Tue Feb 13, 3:06 am)
Re: mingw, windows, crlf/lf, and git, Alexander Litvinov, (Tue Feb 13, 5:16 am)
Re: mingw, windows, crlf/lf, and git, Johannes Schindelin, (Tue Feb 13, 5:37 am)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Tue Feb 13, 9:52 am)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Tue Feb 13, 10:23 am)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Tue Feb 13, 10:23 am)
Re: mingw, windows, crlf/lf, and git, Nicolas Pitre, (Tue Feb 13, 10:25 am)
Re: mingw, windows, crlf/lf, and git, Junio C Hamano, (Tue Feb 13, 11:00 am)
Re: mingw, windows, crlf/lf, and git, Johannes Schindelin, (Tue Feb 13, 11:04 am)
Re: mingw, windows, crlf/lf, and git, Johannes Schindelin, (Tue Feb 13, 11:05 am)
Re: mingw, windows, crlf/lf, and git, Junio C Hamano, (Tue Feb 13, 11:11 am)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Tue Feb 13, 11:39 am)
Re: mingw, windows, crlf/lf, and git, Johannes Schindelin, (Tue Feb 13, 11:42 am)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Tue Feb 13, 12:07 pm)
Re: mingw, windows, crlf/lf, and git, Sam Ravnborg, (Tue Feb 13, 1:42 pm)
Re: mingw, windows, crlf/lf, and git, Nicolas Pitre, (Tue Feb 13, 2:08 pm)
Re: mingw, windows, crlf/lf, and git, David Lang, (Tue Feb 13, 4:19 pm)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Tue Feb 13, 4:28 pm)
Re: mingw, windows, crlf/lf, and git, Alexander Litvinov, (Tue Feb 13, 8:47 pm)
Re: mingw, windows, crlf/lf, and git, Junio C Hamano, (Tue Feb 13, 10:16 pm)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Tue Feb 13, 10:36 pm)
Re: mingw, windows, crlf/lf, and git, Sam Ravnborg, (Wed Feb 14, 1:41 am)
Re: mingw, windows, crlf/lf, and git, Johannes Schindelin, (Wed Feb 14, 4:10 am)
Re: mingw, windows, crlf/lf, and git, Alexander Litvinov, (Wed Feb 14, 4:36 am)
Re: mingw, windows, crlf/lf, and git, Mark Levedahl, (Wed Feb 14, 7:26 am)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Wed Feb 14, 8:44 am)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Wed Feb 14, 8:51 am)
Re: mingw, windows, crlf/lf, and git, Johannes Schindelin, (Wed Feb 14, 8:53 am)
Re: mingw, windows, crlf/lf, and git, Johannes Schindelin, (Wed Feb 14, 8:56 am)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Wed Feb 14, 9:23 am)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Wed Feb 14, 9:28 am)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Wed Feb 14, 9:37 am)
Re: mingw, windows, crlf/lf, and git, Junio C Hamano, (Wed Feb 14, 9:39 am)
Re: mingw, windows, crlf/lf, and git, Sam Ravnborg, (Wed Feb 14, 9:47 am)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Wed Feb 14, 10:01 am)
Re: mingw, windows, crlf/lf, and git, Junio C Hamano, (Wed Feb 14, 10:18 am)
Re: mingw, windows, crlf/lf, and git, Mark Levedahl, (Wed Feb 14, 10:28 am)
Re: mingw, windows, crlf/lf, and git, Junio C Hamano, (Wed Feb 14, 10:29 am)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Wed Feb 14, 10:43 am)
Re: mingw, windows, crlf/lf, and git, Robin Rosenberg, (Wed Feb 14, 11:17 am)
Re: mingw, windows, crlf/lf, and git, Linus Torvalds, (Wed Feb 14, 11:31 am)
Re: mingw, windows, crlf/lf, and git, Robin Rosenberg, (Wed Feb 14, 1:24 pm)