aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Talk about "git cvsimport" in the cvs migration docsLinus Torvalds2005-06-07
| | | | | | We should add a lot more information about how you copy repositories, pulling and pushing, merging etc. Oh, well. I'm not exactly known for my documentation skills. Maybe somebody else will help me..
* [PATCH] Documentation: describe diff tweaking (fix).Junio C Hamano2005-06-07
| | | | | | I cannot count ;-) Signed-off-by: Junio C Hamano <junkio@cox.net>
* [PATCH] Start cvs-migration documentationJunio C Hamano2005-06-07
| | | | | | | This does a section to talk about "cvs annotate". Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* git-read-tree: -u without -m is meaningless. Don't allow it.Linus Torvalds2005-06-07
| | | | Also, documetn the "-u" in the usage string.
* git-read-tree: make one-way merge also honor the "update" flagLinus Torvalds2005-06-07
| | | | It didn't set CE_UPDATE before, so "-u" was a no-op.
* [PATCH] read-tree: update documentation for 3-way merge.Junio C Hamano2005-06-07
| | | | | | | | | This explains the new merge world order that formally assigns specific meaning to each of three tree-ish command line arguments. It also mentions -u option Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Add CVS import scripts and programsLinus Torvalds2005-06-07
| | | | | | | | | | | | | | | | | | This gets the "cvs2git" program from the old git-tools archive, and adds a nice script around it that makes it much easier to use. With this, you should be able to import a CVS archive using just a simple git cvsimport <cvsroot> <module> and you're done. At least it worked for my one single test. NOTE!! This may need tweaking. It currently expects (and verifies) that cvsps version 2.1 is installed, but you can't actually set any of the cvsps parameters, like the time fuzz.
* git-ssh-push/pull: usability improvementsLinus Torvalds2005-06-07
| | | | | | | | | | | | Allow traditional ssh path specifiers (host:path), and let the user override the command name on the other end. With this, I can push to kernel.org with this script export GIT_SSH_PULL=/home/torvalds/bin/git-ssh-pull git-ssh-push -a -v -w heads/master heads/master master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6.git which while not pretty is at least workable.
* [PATCH] Use ntohs instead of htons to convert ce_flags to host byte orderTimo Hirvonen2005-06-07
| | | | | | Use ntohs instead of htons to convert ce_flags to host byte order Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] read-tree: save more user hassles during fast-forward.Junio C Hamano2005-06-07
| | | | | | | | | | | | This implements the "never lose the current cache information or the work tree state, but favor a successful merge over merge failure" principle in the fast-forward two-tree merge operation. It comes with a set of tests to cover all the cases described in the case matrix found in the new documentation. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Document git-ssh-pull and git-ssh-pushDaniel Barkalow2005-06-06
| | | | | | | | | | | | | | | | | | | | This fixes the documentation for git-ssh-push, as called by users (if you run git-ssh-pull or git-ssh-push on one machine, the other runs on the other machine, and they transfer data in the specified direction). This also adds documentation for the -w option and for using filenames for the commit-id (which does what you'd want: uses the source side's value, not the value already on the target, even if you're running it on the target). It also credits me with the programs and the documentation for git-ssh-push. Someone who knows asciidoc should make sure I didn't mess up the formatting. I'm only sure of the ascii part. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* git-resolve-script: stop when the automated merge failsLinus Torvalds2005-06-06
| | | | | No point in doing a tree write that will just throw confusing messages on the screen.
* Make fetch/pull scripts terminate cleanly on errorsLinus Torvalds2005-06-06
| | | | Don't continue with a merge if the fetch failed.
* git-resolve-script: don't wait for three seconds any moreLinus Torvalds2005-06-06
| | | | | We used to overwrite peoples dirty state. We don't any more. So don't print the scary message and don't delay, just do the update already.
* [PATCH] -w support for git-ssh-pull/pushDaniel Barkalow2005-06-06
| | | | | | | This adds support for -w to git-ssh-pull and git-ssh-push to make receiving side write the commit that was transferred to a reference file. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Generic support for pulling refsDaniel Barkalow2005-06-06
| | | | | | | This adds support to pull.c for requesting a reference and writing it to a file. All of the git-*-pull programs get stubs for now. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] rsh.c environment variableDaniel Barkalow2005-06-06
| | | | | | | | | rsh.c used to set the environment variable for the object database when invoking the remote command. Now that there is a GIT_DIR variable, use that instead. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Operations on refsDaniel Barkalow2005-06-06
| | | | | | | | | This patch adds code to read a hash out of a specified file under {GIT_DIR}/refs/, and to write such files atomically and optionally with an compare and lock. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* git-read-tree: some "final" cleanupsLinus Torvalds2005-06-06
| | | | | | Looking good, but hey, it's not like I even have a real testcase for any of this. But unlike the mess that this was yerstday, today read-cache is pretty readable and understandable. Which is always a good sign.
* git-read-tree: simplify merge loops enormouslyLinus Torvalds2005-06-06
| | | | | | | | | Stop trying to haev this stateful thing that keeps track of what it has seen, and use a much simpler "gather all the different stages with the same name together and just merge them in one go" approach. Makes it a lot more understandable, and allows the different merge algorithms to share the basic merge loop.
* [PATCH] index locking like everybody elseJunio C Hamano2005-06-06
| | | | | | | | This patch teaches read-tree how to use the index file locking helpers the same way "checkout-cache -u" and "update-cache" do. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Add "__noreturn__" attribute to die() and usage()Linus Torvalds2005-06-06
| | | | | Only with gcc. It fixes some warnings for certain versions of gcc, but not apparently all.
* git-rev-list: make sure to link with ssl librariesLinus Torvalds2005-06-06
| | | | Needed for the bignum stuff used by merge-order.
* [PATCH] Modify git-rev-list to linearise the commit history in merge order.jon@blackcubes.dyndns.org2005-06-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch linearises the GIT commit history graph into merge order which is defined by invariants specified in Documentation/git-rev-list.txt. The linearisation produced by this patch is superior in an objective sense to that produced by the existing git-rev-list implementation in that the linearisation produced is guaranteed to have the minimum number of discontinuities, where a discontinuity is defined as an adjacent pair of commits in the output list which are not related in a direct child-parent relationship. With this patch a graph like this: a4 --- | \ \ | b4 | |/ | | a3 | | | | | a2 | | | | c3 | | | | | c2 | b3 | | | /| | b2 | | | c1 | | / | b1 a1 | | | a0 | | / root Sorts like this: = a4 | c3 | c2 | c1 ^ b4 | b3 | b2 | b1 ^ a3 | a2 | a1 | a0 = root Instead of this: = a4 | c3 ^ b4 | a3 ^ c2 ^ b3 ^ a2 ^ b2 ^ c1 ^ a1 ^ b1 ^ a0 = root A test script, t/t6000-rev-list.sh, includes a test which demonstrates that the linearisation produced by --merge-order has less discontinuities than the linearisation produced by git-rev-list without the --merge-order flag specified. To see this, do the following: cd t ./t6000-rev-list.sh cd trash cat actual-default-order cat actual-merge-order The existing behaviour of git-rev-list is preserved, by default. To obtain the modified behaviour, specify --merge-order or --merge-order --show-breaks on the command line. This version of the patch has been tested on the git repository and also on the linux-2.6 repository and has reasonable performance on both - ~50-100% slower than the original algorithm. This version of the patch has incorporated a functional equivalent of the Linus' output limiting algorithm into the merge-order algorithm itself. This operates per the notes associated with Linus' commit 337cb3fb8da45f10fe9a0c3cf571600f55ead2ce. This version has incorporated Linus' feedback regarding proposed changes to rev-list.c. (see: [PATCH] Factor out filtering in rev-list.c) This version has improved the way sort_first_epoch marks commits as uninteresting. For more details about this change, refer to Documentation/git-rev-list.txt and http://blackcubes.dyndns.org/epoch/. Signed-off-by: Jon Seymour <jon.seymour@gmail.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Fix off-by-one in new three-way-merge updatesLinus Torvalds2005-06-05
| | | | | | | | | That's the final one ("Yeah, sure, we believe you"). Anyway, at least the tests pass, which is not saying a lot, since they don't end up testing all the new the things that the new merge world order tries to do. But hopefully we're now at least not any worse off than we were before the rewrite.
* [PATCH] 3-way merge tests for new "git-read-tree -m"?Junio C Hamano2005-06-05
| | | | | | | | | The updated git-tread-tree -m is more strict in that it wants to have the original cache up to date. The initial part of t1000 (merge tests from hell) fails due to it. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Three-way merge: fix silly bug that made trivial merges not workLinus Torvalds2005-06-05
| | | | | | Making the main loop look more like the one- and two-way cases introduced a bug where "src" had been updated early, but later users hadn't been adjusted to match.
* Fix entry.c dependency and compile problemLinus Torvalds2005-06-05
| | | | Bad Linus.
* git-read-tree: fix up two-way mergeLinus Torvalds2005-06-05
| | | | This is starting to look better.
* More work on merging with git-read-tree..Linus Torvalds2005-06-05
| | | | | | | | | Add a "-u" flag to update the tree as a result of a merge. Right now this code is way too anal about things, and fails merges it shouldn't, but let me fix up the different cases and this will allow for much smoother merging even in the presense of dirty data in the working tree.
* Make fiel checkout function available to the git libraryLinus Torvalds2005-06-05
| | | | | The merge stuff will want it soon, and we don't want to duplicate all the work..
* git-read-tree: fix up three-way merge testsLinus Torvalds2005-06-05
| | | | | When we collapse three entries, we need to check all of the collapsed entries against the old pre-merge state.
* git-read-tree: be a lot more careful about merging dirty treesLinus Torvalds2005-06-05
| | | | | | | | We don't want to overwrite state that we haven't committed yet when merging, so it's better to make git-read-tree fail than end up with a merge tree that ends up not having the dirty changes. Update git-resolve-script to fail cleanly when git-read-tree fails.
* [PATCH] Make git-update-cache --force-remove regularPetr Baudis2005-06-05
| | | | | | | | | | | | Make the --force-remove flag behave same as --add, --remove and --replace. This means I can do git-update-cache --force-remove -- file1.c file2.c which is probably saner and also makes it easier to use in cg-rm. Signed-off-by: Petr Baudis <pasky@ucw.cz> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] rename git-rpush and git-rpull to git-ssh-push and git-ssh-pullJunio C Hamano2005-06-05
| | | | | | | | In preparation for 1.0 release, this makes the command names consistent with others in git-*-pull family. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* diff 'rename' format change.Linus Torvalds2005-06-05
| | | | | | | | | Clearly even Junio felt git "rename" header lines should say "from/to" instead of "old/new", since he wrote the documentation that way. This way it also matches "copy". git-apply will accept both versions, at least for a while.
* git-apply: consider it an error to apply no changesLinus Torvalds2005-06-05
| | | | | | A "--stat" or a "--check" will just be quiet, but if you try to apply something with no changes, that's an error.
* [PATCH] Documentation: describe git extended diff headers.Junio C Hamano2005-06-05
| | | | | | | | The documentation failed to describe "diff --git" extended diff headers, so add some. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Documentation: describe diff tweaking.Junio C Hamano2005-06-05
| | | | | | | | | | | | | This adds documentation for the diffcore mechanism and explains how numeric parameters to -B/-C/-M options affect the output, which was left "black magic" so far. The documentation is not connected to any of the other asciidoc nodes yet. Awaiting for suggestions, fixes and help from other people. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* git-apply: fix rename header parsingLinus Torvalds2005-06-05
| | | | | | | It's not "rename from" and "rename to", it's "rename old" and "rename new". Which is illogical and doesn't match the "copy from/to" case, but that's life. Maybe Junio will fix it up one of these days.
* [PATCH] pull: gracefully recover from delta retrieval failure.Junio C Hamano2005-06-05
| | | | | | | | | | | | | | | | | | | This addresses a concern raised by Jason McMullan in the mailing list discussion. After retrieving and storing a potentially deltified object, pull logic tries to check and fulfil its delta dependency. When the pull procedure is killed at this point, however, there was no easy way to recover by re-running pull, since next run would have found that we already have that deltified object and happily reported success, without really checking its delta dependency is satisfied. This patch introduces --recover option to git-*-pull family which causes them to re-validate dependency of deltified objects we are fetching. A new test t5100-delta-pull.sh covers such a failure mode. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] diffcore-break.c: various fixes.Junio C Hamano2005-06-05
| | | | | | | | | | | | | | | | | | | | | | | This fixes three bugs in the -B heuristics. - Although it was advertised that the initial break criteria used was the same as what diffcore-rename uses, it was using something different. Instead of using smaller of src and dst size to compare with "edit" size, (insertion and deletion), it was using larger of src and dst, unlike the rename/copy detection logic. This caused the parameter to -B to mean something different from the one to -M and -C. To compensate for this change, the default break score is also changed to match that of the default for rename/copy. - The code would have crashed with division by zero when trying to break an originally empty file. - Contrary to what the comment said, the algorithm was breaking small files, only to later merge them together. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] diff.c: -B argument passing fix.Junio C Hamano2005-06-05
| | | | | | | | | This fixes a bug that was preventing non-default parameter to -B option to be passed correctly; you could not give more than 50% break score. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] diff.c: locate_size_cache() fix.Junio C Hamano2005-06-05
| | | | | | | | | | | | | | | | This fixes two bugs. - declaration of auto variable "cmp" was preceeded by a statement, causing compilation error on real C compilers; noticed and patch given by Yoichi Yuasa. - the function's calling convention was overloading its size parameter to mean "largest possible value means do not add entry", which was a bad taste. Brought up during a discussion with Peter Baudis. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* git-apply: actually apply patches and update the indexLinus Torvalds2005-06-05
| | | | | | | | | | We update the index only if the "--index" flag is given, so you can actually use this as a strange kind of "patch" program even for non-git usage. Not that you'd likely want to, but it comes in handy for testing. This _should_ more or less get everythign right, but as usual I leave the testing to the usrs..
* git-apply: fix apply of a new fileLinus Torvalds2005-06-05
| | | | | (And fix name handling for when we have an implied create or delete event from a traditional diff).
* git-apply: find offset fragments, and really apply themLinus Torvalds2005-06-05
| | | | | | | This applies the fragments in memory, but doesn't actually write the results out to the files yet. But we now do all the difficult parts, the rest is just basically writing the results out and updating the index.
* git-apply: first cut at actually checking fragment dataLinus Torvalds2005-06-05
| | | | | | | | Right now it requires that the fragment offsets be exact, and it doesn't actually apply the fragment yet, but it does find where it goes and verify the data. Next step: actually applying the fragment changes.
* git-fsck-cache: complain if no default references foundLinus Torvalds2005-06-05
|
* pretty_print_commit: add different formatsLinus Torvalds2005-06-05
| | | | | | | | You can ask to print out "raw" format (full headers, full body), "medium" format (author and date, full body) or "short" format (author only, condensed body). Use "git-rev-list --pretty=short HEAD | less -S" for an example.