2838844 | Junio C Hamano | 29 July 2007, 00:20:52 UTC | symbolic-ref, update-ref: do not refuse reflog message with LF Earlier these tools refused to create a reflog entry when the message given by the calling Porcelain had a LF in it, partially to keep the file format integrity of reflog file, which is one-entry-per-line. These tools should not be dictating such a policy. Instead, let the codepath to write out the reflog entry worry about the format integrity and allow messages with LF in them. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 July 2007, 06:28:55 UTC |
0ec29a4 | Junio C Hamano | 29 July 2007, 00:17:17 UTC | log_ref_write() -- do not chomp reflog message at the first LF A reflog file is organized as one-line-per-entry records, and we enforced the file format integrity by chomping the given message at the first LF. This changes it to convert them to SP, which is more in line with the --pretty=oneline format. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 July 2007, 06:28:55 UTC |
922b0e3 | Junio C Hamano | 30 July 2007, 06:09:54 UTC | Merge branch 'bs/lock' * bs/lock: Add test for symlinked configuration file updates. use lockfile.c routines in git_commit_set_multivar() fully resolve symlinks when creating lockfiles | 30 July 2007, 06:09:54 UTC |
b8de7f7 | Junio C Hamano | 30 July 2007, 05:53:33 UTC | Merge branch 'master' of git://repo.or.cz/git-gui * 'master' of git://repo.or.cz/git-gui: (50 commits) git-gui: Minor refactoring of merge command line in merge support git-gui: Use more modern looking icons in the tree browser git-gui: Don't offer to stage hunks from untracked files git-gui: Make sure remotes are loaded when picking revisions git-gui: Use progress bar while resetting/aborting files git-gui: Honor core.excludesfile when listing extra files git-gui: Unify wording to say "to stage" instead of "to add" git-gui: Don't kill modified commit message buffer with merge templates git-gui: Remove usernames from absolute SSH urls during merging git-gui: Format tracking branch merges as though they were pulls git-gui: Cleanup bindings within merge dialog git-gui: Replace merge dialog with our revision picker widget git-gui: Show ref last update times in revision chooser tooltips git-gui: Display commit/tag/remote info in tooltip of revision picker git-gui: Save remote urls obtained from config/remotes setup git-gui: Avoid unnecessary symbolic-ref call during checkout git-gui: Refactor current branch menu items to make i18n easier git-gui: Refactor diff popup into a procedure to ease i18n work git-gui: Paper bag fix quitting crash after commit git-gui: Clarify meaning of add tracked menu option ... | 30 July 2007, 05:53:33 UTC |
84f6753 | Shawn O. Pearce | 30 July 2007, 00:21:54 UTC | git-gui: Minor refactoring of merge command line in merge support This is just a small code movement to cleanup how we generate the command line for a merge. I'm only doing it to make the next series of changes slightly more readable. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 30 July 2007, 03:44:52 UTC |
dac7089 | Shawn O. Pearce | 30 July 2007, 01:19:54 UTC | git-gui: Use more modern looking icons in the tree browser This is a replacement of all of the icons in our tree browser window, as the prior icons just looked too 1980s Tk-ish. The icons used here are actually from a KDE themed look, so they might actually be familiar to some users of git-gui. Aside from using more modern looking icons we now have a special icon for executable blobs, to make them stand out from the normal non-executable blobs. We also denote symlinks now with a different icon, so they stand out from the other types of objects in the tree. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 30 July 2007, 03:44:52 UTC |
37e2199 | Shawn O. Pearce | 30 July 2007, 00:29:52 UTC | git-gui: Don't offer to stage hunks from untracked files If the user looks at an untracked file in our diff pane we used to offer "Stage Hunk For Commit" in the context menu when they right-clicked in that pane. The problem is we don't actually have any diff hunks in untracked files, so there is nothing to really select for staging. So we now grey out the menu item, so the user cannot invoke it and think its broken when it does not perform any useful action. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 30 July 2007, 03:44:51 UTC |
95af4d8 | Shawn O. Pearce | 30 July 2007, 01:26:42 UTC | git-gui: Make sure remotes are loaded when picking revisions If we are started for only a blame/browser/citool run we don't usually initialize the list of remotes, or determine which refs are tracking branches and which are local branch heads. This is because some of that work is relatively expensive and is usually not going to be needed if we are started only for a blame, or to make a single commit. However by not loading the remote configuration we were crashing if the user tried to open a browser for another branch through the Repository menu, as our load_all_heads procedure was unable to decide which refs/heads/ items were actually local heads. We now force all remote configuration data to be loaded if we have not done so already and we are trying to create a revision mega widget. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 30 July 2007, 03:44:51 UTC |
89b2f19 | David Kastrup | 29 July 2007, 22:23:28 UTC | Makefile: use $(FIND) instead of find Some people might prefer to be able to specify the find utility to use. Signed-off-by: David Kastrup <dak@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 29 July 2007, 22:23:28 UTC |
82cb8af | Jeff King | 29 July 2007, 09:49:56 UTC | git-diff: turn on recursion by default The tree recursion behavior of git-diff may appear inconsistent to the user because it depends on the format of the patch as well as whether one is diffing between trees or against the index. Since git-diff is a porcelain wrapper for low-level diff commands, it makes sense for its behavior to be consistent no matter what is being diffed. This patch turns on recursion in all cases. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 29 July 2007, 20:24:42 UTC |
0fe055c | Shawn O. Pearce | 29 July 2007, 08:06:51 UTC | git-gui: Use progress bar while resetting/aborting files Resetting a large number of files on a slow filesystem can take considerable time, just as switching branches in such a case can take more than two seconds. We now take advantage of the progress meter output by read-tree and show it in the main window status bar, just like we do during checkout (branch switch). Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 29 July 2007, 08:07:13 UTC |
94a4dd9 | Shawn O. Pearce | 29 July 2007, 07:22:27 UTC | git-gui: Honor core.excludesfile when listing extra files Recent git versions have a git-status that honors the core.excludesfile configuration option when it reports on untracked files. Unfortunately I missed the introduction of this configuration option in the core porcelain implementation, so it was not reflected here in git-gui. Found and reported by Lars Noschinski <lars@public.noschinski.de>. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 29 July 2007, 07:22:27 UTC |
360cc10 | Christian Stimming | 28 July 2007, 20:17:10 UTC | git-gui: Unify wording to say "to stage" instead of "to add" Also, the warning message when clicking "Reset" is adapted to the wording "Reset" rather than a confusion "Cancel commit?". Signed-off-by: Christian Stimming <stimming@tuhh.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 29 July 2007, 07:09:07 UTC |
c22486c | Seth Falcon | 28 July 2007, 23:44:40 UTC | Rename git-rebase interactive buffer: todo => git-rebase-todo When using emacsclient or similar, a temporary buffer (file) named 'todo' could cause confusion with a pre-existing buffer of the same name. Signed-off-by: Seth Falcon <sethfalcon@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 29 July 2007, 01:55:04 UTC |
f22cca4 | Jakub Narebski | 28 July 2007, 23:04:09 UTC | gitweb: Allow for multivalued parameters passed to href subroutine Make it possible to generate URLs with multivalued parameters in the href() subroutine, via passing reference to array of values. Example: href(action=>"log", extra_options=>["--no-merges", "--first-parent"]) Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 29 July 2007, 01:54:56 UTC |
8b4aee0 | Thomas Schwinge | 28 July 2007, 18:26:35 UTC | Don't rely on unspecified behavior Calling access(p, m) with p == NULL is not specified, so don't do that. On GNU/Hurd systems doing so will result in a SIGSEGV. Signed-off-by: Thomas Schwinge <tschwinge@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 29 July 2007, 01:50:36 UTC |
1207510 | Jakub Narebski | 28 July 2007, 14:27:32 UTC | gitweb: Simplify 'opt' parameter validation, add "no merges" feeds Simplify and make more readable validation of 'opt' (extra options) parameter, using exists($hash{key}) instead of grepping keys of a hash for value. Move 'opt' parameter to be the last (for now) in the URL. Make use of '--no-merges' extra option ('opt') by adding "no merges" RSS and Atom feeds to the HTML header. Note that alternate format links in the RSS and Atom views do not use '--no-merges' option yet! Adds tests for the 'opt' parameter to t9500-gitweb-standalone-no-errors.sh Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 29 July 2007, 01:47:51 UTC |
01ac1e3 | Jakub Narebski | 28 July 2007, 14:27:31 UTC | gitweb: Show submodule entries in the 'tree' view Add S_ISGITLINK subroutine and S_IFGITLINK, S_IFINVALID constants. Add support for "commit" (submodule) entries in the tree object to mode_str ('m---------', following cgit), file_type and file_type_long ('submodule') subroutines. There is only link to the history of submodule entry in the supermodule (current repository) for now, because gitweb doesn't know where to search for submodule repository objects. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 29 July 2007, 01:46:32 UTC |
90ae710 | Jeff King | 29 July 2007, 00:24:27 UTC | Documentation/git-diff: remove -r from --name-status example Calling 'git-diff --name-status' will recursively show any changes already, and it has for quite some time (at least as far back as v1.4.1). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 29 July 2007, 01:44:52 UTC |
83b3df7 | Junio C Hamano | 28 July 2007, 06:51:45 UTC | git-stash apply --index: optimize postprocessing Originally, "apply --index" codepath was bolted on to the "update working tree files and index, but then revert the changes we make to the index except for added files so that we do not forget about them" codepath, almost as an afterthought. Because "apply --index" first prepares the final index state upfront, "revert except the added paths" postprocessing does not have to be done. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 July 2007, 07:06:00 UTC |
cbeaccc | Junio C Hamano | 28 July 2007, 06:41:31 UTC | Fix git-stash apply --index Two bugs that made the command practically unusable were fixed with this. - A stash created with a clean index does not have any difference between the base tree and the index tree. Trying to apply the diff between them to the index would error out with "No changes". Even when the user asked to unstash with --index, do not bother with --index action if the base tree and the index tree match. - After successfully performing the working tree merge, the index was reloaded from an earlier state of unstashed index with "read-tree"; this left all the paths cache dirty. By moving the call to git-status after this read-tree, match the cached stat information in the index. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 July 2007, 07:06:00 UTC |
f12e925 | しらいしななこ | 28 July 2007, 01:44:48 UTC | git-stash: Make sure reflog is created for refs/stash Earlier commit 7ab3cc70 fixed "stash clear" but broke save_stash, because it forgot to make sure the reflog file exists before saving. Signed-off-by: Nanako Shiraishi <nanako3@bluebottle.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 July 2007, 07:06:00 UTC |
11bb2d4 | Junio C Hamano | 28 July 2007, 07:05:40 UTC | Merge branch 'master' of git://git.kernel.org/pub/scm/gitk/gitk * 'master' of git://git.kernel.org/pub/scm/gitk/gitk: gitk: Fix bugs in the Find function gitk: Wait for the window to become visible after creating it [PATCH] gitk: Bind keyboard actions to the command key on Mac OS [PATCH] gitk: Ignore ctrl-z as EOF on windows gitk: Make the fake commit for the index changes green rather than magenta gitk: Show changes in index and changes in working directory separately | 28 July 2007, 07:05:40 UTC |
fb47cfb | Johannes Schindelin | 24 July 2007, 20:43:09 UTC | rebase -i: fix interrupted squashing When a squashing merge failed, the first commit would not be replaced, due to "git reset --soft" being called with an unmerged index. Noticed by Uwe Kleine-König. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 July 2007, 17:59:42 UTC |
65a5a21 | Junio C Hamano | 27 July 2007, 05:13:12 UTC | Add test for symlinked configuration file updates. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 July 2007, 07:02:05 UTC |
6cbf973 | Bradford C. Smith | 26 July 2007, 16:55:28 UTC | use lockfile.c routines in git_commit_set_multivar() Changed git_commit_set_multivar() to use the routines provided by lockfile.c to reduce code duplication and ensure consistent behavior. Signed-off-by: Bradford C. Smith <bradford.carl.smith@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 July 2007, 07:02:05 UTC |
5d5a7a6 | Bradford C. Smith | 26 July 2007, 17:34:14 UTC | fully resolve symlinks when creating lockfiles Make the code for resolving symlinks in lockfile.c more robust as follows: 1. Handle relative symlinks 2. recursively resolve symlink chains up to 5 [jc: removed lstat/stat calls to do things stupid way] Signed-off-by: Bradford C. Smith <bradford.carl.smith@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 July 2007, 07:02:05 UTC |
1e0a92f | Shawn O. Pearce | 27 July 2007, 06:30:15 UTC | git-gui: Don't kill modified commit message buffer with merge templates If the user is in the middle of a merge and has already started to modify their commit message we were losing the user's changes when they pressed 'Rescan' after resolving issues or making changes in the working directory. The problem here was our background timer that saves the commit message buffer. It marks the commit message buffer as not being modified when it writes it out to disk, so during the rescan we assumed the buffer should be replaced with what we read from the MERGE_MSG file. So we now only read these files from .git if we have a valid backup file. Since we clear it on commit this will only have an impact while the user is actively editing the current commit. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 27 July 2007, 06:30:15 UTC |
7ab3cc7 | Junio C Hamano | 27 July 2007, 06:24:28 UTC | git-stash: do not remove a ref by hand. Somebody on #git noticed that "git stash clear" left a packed ref behind for ref/stash. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 July 2007, 06:24:28 UTC |
383e45c | Brian Gernhardt | 26 July 2007, 20:34:59 UTC | Document commit.template configuration variable. Add it to the list in config.txt and explicitly say that the --template option to git-commit overrides the configuration variable. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 July 2007, 23:57:24 UTC |
005a2f4 | Paul Mackerras | 26 July 2007, 12:36:39 UTC | gitk: Fix bugs in the Find function This fixes the problem reported by Brian Downing where searching for a string that doesn't exist would give a Tcl error. The basic problem was that we weren't reading the data for the last commit since it wasn't terminated with a null. This effectively adds a null on the end (if there isn't one already) to make sure we process the last commit. This also makes the yellow background behind instances of the search string appear more consistently, and fixes a bug where the "/" key would just find the same commit again and again instead of advancing. Signed-off-by: Paul Mackerras <paulus@samba.org> | 26 July 2007, 12:36:39 UTC |
654a7cc | Junio C Hamano | 26 July 2007, 06:45:42 UTC | Update description of -z option. The NUL you see in "git log" (without diff) output are between records, not at the end of each record. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 July 2007, 06:45:42 UTC |
91e1ee7 | Johannes Schindelin | 26 July 2007, 06:35:51 UTC | rebase -i: fix overzealous output redirection When squashing, you no longer saw what the editor had to say to you after commit 'Shut "git rebase -i" up when no --verbose was given' (if you used a console based editor, at least). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 July 2007, 06:38:43 UTC |
b87841e | Nguyễn Thái Ngọc Duy | 26 July 2007, 03:14:54 UTC | git-write-tree should not crash if prefix does not exist Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 July 2007, 04:35:17 UTC |
e7a7be8 | Junio C Hamano | 26 July 2007, 04:34:53 UTC | git_mkstemp(): be careful not to overflow the path buffer. If user's TMPDIR is insanely long, return negative after setting errno to ENAMETOOLONG, pretending that the underlying mkstemp() choked on a temporary file path that is too long. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 July 2007, 04:34:53 UTC |
d58e8d3 | Junio C Hamano | 25 July 2007, 23:22:55 UTC | When locking in a symlinked repository, try to lock the original. In a working tree prepared in new-workdir (in contrib/), some files in .git/ directory are symbolic links to the original repository. The usual sequence of lock-write-rename would break the symbolic link. Ideally we should resolve relative symbolic link with maxdepth, but I do not want to risk too elaborate patch before 1.5.3 release, so this is a minimum and trivially obvious fix. new-workdir creates its symbolic links absolute, and does not link from a symlinked workdir, so this fix should suffice for now. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 23:22:55 UTC |
1a44be9 | Junio C Hamano | 25 July 2007, 23:13:55 UTC | git-submodule: remove redundant call to git-describe The code to find a more descriptive name given a commit in a submodule were improved in bffe71f, but it forgot to remove the older logic the patch replaced. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 23:13:55 UTC |
b2d2d16 | Simon Hausmann | 25 July 2007, 07:31:38 UTC | git-p4: Fix p4 user cache population on Windows. Fall back to USERPROFILE if HOME isn't set. Signed-off-by: Simon Hausmann <shausman@trolltech.com> Signed-off-by: Marius Storm-Olsen <marius@trolltech.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 23:06:54 UTC |
537601a | Junio C Hamano | 25 July 2007, 22:51:26 UTC | git-submodule module_name: avoid using unwieldy "value_regexp" feature. "module_name $path" function wants to look up a configuration variable "submodule.<modulename>.path" whose value is $path, and return the <modulename> found. "git-config --get-regexp" is the natural thing to use for this, but (1) its value matching has an unfortunate "feature" that takes leading '!' specially, and (2) its output needs to be parsed with sed to extract <modulename> part anyway. This changes the call to "git-config --get-regexp" not to use the value-regexp part, and moves the "pick the one whose value is $path" part to the downstream sed. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 22:51:26 UTC |
887c526 | Junio C Hamano | 25 July 2007, 22:49:55 UTC | gitweb: fix broken snapshot Recent updates to snapshot code had a typo that broke the command line to invoke underlying "git archive" command. This is a simple typofix for it. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 22:50:42 UTC |
ceff079 | Junio C Hamano | 25 July 2007, 22:32:22 UTC | Make sure git-stash works from subdirectory. We say "SUBDIRECTORY_OK" but we did not chdir to toplevel; this is fine as long as everything we use can be started from a subdirectory, but unfortunately "merge-recursive" is not one of the programs you can safely use from a subdirectory. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 22:34:52 UTC |
4eb9947 | Robin Rosenberg | 25 July 2007, 10:08:17 UTC | Document --unified/-U option Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 20:27:26 UTC |
bc318ea | Shawn O. Pearce | 25 July 2007, 09:02:38 UTC | git-gui: Remove usernames from absolute SSH urls during merging If we are being asked to merge a tracking branch that comes from a remote repository accessed by the very common SSH URL format of "user@host:/path/to/repo" then we really don't need the username as part of the merge message, it only clutters up the history and makes things more confusing. So we instead clip the username part off if the local filesystem path is absolute, as its probably not going to be an ambiguous URL even when it is missing the username. On the other hand we cannot clip the username off if the URL is not absolute, because in such cases (e.g. "user@host:myrepo") the directory that the repository path is resolved in is relative to the user's home directory, and the username becomes important. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 25 July 2007, 09:02:38 UTC |
ead49f5 | Shawn O. Pearce | 25 July 2007, 08:54:53 UTC | git-gui: Format tracking branch merges as though they were pulls If we are merging a tracking branch we know exactly what remote URL that branch is fetched from, and what its name is on that remote repository. In this case we can setup a merge message that looks just like a standard `git-pull $remote $branch` operation by filling out FETCH_HEAD before we start git-merge, and then run git-merge just like git-pull does. I think the result of this behavior is that merges look a lot nicer when the came off of local tracking branches, because they no longer say "commit 'origin/...'" to describe the commit being merged but instead now mention the specific repository we fetched those commits from. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 25 July 2007, 08:54:53 UTC |
9feefbd | Shawn O. Pearce | 25 July 2007, 08:32:18 UTC | git-gui: Cleanup bindings within merge dialog Misc. code cleanups in the merge dialog's binding setup and action button creation. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 25 July 2007, 08:32:18 UTC |
350a35f | Shawn O. Pearce | 25 July 2007, 07:44:50 UTC | git-gui: Replace merge dialog with our revision picker widget Now that we only support merging one branch we can offer the user a better user interface experience by allowing them to select the revision they want to merge through our revision picking widget. This change neatly solves the problem of locating a branch out of a sea of 200 tracking branches, and of dealing with very long branch names that all have a common prefix. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 25 July 2007, 08:23:31 UTC |
becafaa | Shawn O. Pearce | 25 July 2007, 08:20:02 UTC | git-gui: Show ref last update times in revision chooser tooltips If we can we now show the last modification date of a loose ref as part of the tooltip information shown in the revision picker. This gives the user an indication of when was the last time that the ref was modified locally, and may especially be of interest when looking at a tracking branch. If we cannot find the loose ref file than we try to fallback on the reflog and scan it for the date of the last record. We don't start with the reflog however as scanning it backwards from the end is not an easy thing to do in Tcl. So I'm being lazy here and just going through the entire file, line by line. Since that is less efficient than a single stat system call, its our fallback strategy. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 25 July 2007, 08:23:20 UTC |
844c3f6 | Shawn O. Pearce | 25 July 2007, 08:13:00 UTC | git-gui: Display commit/tag/remote info in tooltip of revision picker Our revision chooser mega-widget now sets up tooltips for itself so that it displays details about a commit (or a tag and the commit it refers to) when the user mouses over that line in the filtered ref list. If the item is from a remote tracking branch then we also show the remote url and what branch on that remote we fetch from, so the user has a clear concept of where that revision data originated. To help the merge dialog I've also added a new constructor that makes the dialog only offer unmerged revisions (those not in HEAD), as this allows users to avoid performing merges only to get "Already up to date" messages back from core Git. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 25 July 2007, 08:23:20 UTC |
30d1990 | Shawn O. Pearce | 25 July 2007, 07:27:57 UTC | git-gui: Save remote urls obtained from config/remotes setup I'm storing the URLs of any pre-configured remote repositories that we happen to come across so that we can later use these URLs to show to the user in parts of the UI that might care. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 25 July 2007, 08:23:09 UTC |
f48a203 | Junio C Hamano | 25 July 2007, 04:39:33 UTC | GIT 1.5.3-rc3 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 07:06:53 UTC |
ceefa44 | Alexandre Julliard | 24 July 2007, 10:02:28 UTC | git.el: Pass an explicit argument to enable smerge-mode. Without argument the mode is toggled, which would do the wrong thing if the file was already open. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 07:06:38 UTC |
1c911dc | Jim Meyering | 24 July 2007, 18:59:47 UTC | pretty-options.txt: tiny doc fix Signed-off-by: Jim Meyering <jim@meyering.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 07:06:38 UTC |
c4eaed4 | Junio C Hamano | 25 July 2007, 06:25:38 UTC | t9200: Be careful when checking CVS/Entries CVS/Entries file can contain a line with single D to say "this directory does not have any subdirectories". Do not get confused with such an entry. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 07:06:38 UTC |
ca193cf | Johannes Schindelin | 24 July 2007, 00:02:25 UTC | git am: skip pine's internal folder data Test if the From: line contains "Mail System Internal Data" and if it is, skip this mail. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 03:48:04 UTC |
d1cc130 | Steven Grimm | 23 July 2007, 04:17:42 UTC | Teach git-commit about commit message templates. These are useful in organizations that enforce particular formats for commit messages, e.g., to specify bug IDs or test plans. Use of the template is not enforced; it is simply used as the initial content when the editor is invoked. Signed-off-by: Steven Grimm <koreth@midwinter.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 03:46:54 UTC |
af66366 | Johannes Schindelin | 24 July 2007, 18:18:34 UTC | Teach approxidate() to understand "never" If you want to keep the reflogs around for a really long time, you should be able to say so: $ git config gc.reflogExpire never Now it works, too. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 00:28:10 UTC |
7b69b87 | Johannes Schindelin | 23 July 2007, 23:39:50 UTC | git log -g: Complain, but do not fail, when no reflogs are there When asking "git log -g --all", clearly you want to see only those refs that do have reflogs, but you do not want it to fail, either. So instead of die()ing, complain about it, but move on to the other refs. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 00:28:10 UTC |
2d8ae40 | Kumar Gala | 24 July 2007, 14:50:38 UTC | send-email: Update regex parsing for pine aliases The pine address book format is tab seperated and the first field is the nickname/alias and the third field is the email address as per: http://www.washington.edu/pine/tech-notes/low-level.html Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 00:28:10 UTC |
f836f1a | Robin Rosenberg | 24 July 2007, 22:56:20 UTC | cvsexportcommit: avoid racy CVS problem. If git cvsexportcommit is executed fast enough in sequence, the CVS timestamps could end up being the same. CVS tries to fix this by sleeping until the CPU clock changes seconds. Unfortunately, the CPU clock and the file system clock are not necessarily the same, so the timestamps could be the same anyway. When that happens CVS may not recognize changed files and cvs will forget to commit some files. Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 00:28:10 UTC |
1843d8d | René Scharfe | 24 July 2007, 21:54:25 UTC | cleanup unpack-trees.c: shrink struct tree_entry_list Remove the two write-only fields executable and symlink from struct tree_entry_list. Also replace usage of the field directory with S_ISDIR checks on the mode field, and then remove this now obsolete field, too. Noticed by David Kastrup. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 00:28:10 UTC |
24d0063 | René Scharfe | 24 July 2007, 21:29:29 UTC | filter-branch: fix dash complaining about "Missing '))'" On e.g. Ubuntu, dash is used as /bin/sh. Unlike bash it parses commands like a=$((echo stuff) | wc) as an arithmetic expression while what we want is a subshell inside a command substitution. Resolve the ambiguity by placing a space between the two opening parentheses. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 00:28:10 UTC |
3473e7d | Jakub Narebski | 24 July 2007, 23:19:58 UTC | gitweb: More detailed error messages for snapshot format Improve error messages for snapshot format in git_snapshot: distinguish between situation where snapshots are turned off, where snapshot format ('sf') parameter is invalid, where given snapshot format does not exist in %known_snapshot_formats hash, and where gitweb was given unsupported snapshot format. While at it, use first from all supported snapshots format as default, if no snapshot format was provided. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 July 2007, 00:26:04 UTC |
93c22ee | Alexandre Julliard | 24 July 2007, 10:12:47 UTC | git.el: Support for incremental status updates. When we know which files have been modified, we can now run diff-index or ls-files with a file list to refresh only the specified files instead of the whole project. This also allows proper refreshing of files upon add/delete/resolve, instead of making assumptions about the new file state. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 July 2007, 10:16:26 UTC |
1130845 | Junio C Hamano | 24 July 2007, 08:58:51 UTC | user-manual: fix typolets. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 July 2007, 08:58:56 UTC |
1cffddd | Junio C Hamano | 24 July 2007, 07:46:35 UTC | Mark user-manual as UTF-8 There have been several complaints against k.org's user-manual page. The document is generated in ISO-8859-1 by the xsltproc toolchain (I suspect this is because released docbook.xsl we use has xsl:output element that says the output is ISO-8859-1) but server delivers it with "charset=UTF-8", and all h*ll breaks loose. This attempts to force UTF-8 on the generating end. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 July 2007, 07:47:05 UTC |
8e64006 | Johannes Schindelin | 23 July 2007, 23:38:40 UTC | Teach revision machinery about --no-walk The flag "no_walk" is present in struct rev_info since a long time, but so far has been in use exclusively by "git show". With this flag, you can see all your refs, ordered by date of the last commit: $ git log --abbrev-commit --pretty=oneline --decorate --all --no-walk which is extremely helpful if you have to juggle with a lot topic branches, and do not remember in which one you introduced that uber debug option, or simply want to get an overview what is cooking. (Note that the "git log" invocation above does not output the same as $ git show --abbrev-commit --pretty=oneline --decorate --all --quiet since "git show" keeps the alphabetic order that "--all" returns the refs in, even if the option "--date-order" was passed.) For good measure, this also adds the "--do-walk" option which overrides "--no-walk". Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 July 2007, 06:57:50 UTC |
dfd05e3 | Johannes Schindelin | 23 July 2007, 17:34:13 UTC | filter-branch: Big syntax change; support rewriting multiple refs We used to take the first non-option argument as the name for the new branch. This syntax is not extensible to support rewriting more than just HEAD. Instead, we now have the following syntax: git filter-branch [<filter options>...] [<rev-list options>] All positive refs given in <rev-list options> are rewritten. Yes, in-place. If a ref was changed, the original head is stored in refs/original/$ref now, for your inspecting pleasure, in addition to the reflogs (since it is easier to inspect "git show-ref | grep original" than to inspect all the reflogs). This commit also adds the --force option to remove .git-rewrite/ and all refs from refs/original/ before filtering. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 July 2007, 06:15:09 UTC |
3b38ec1 | Johannes Schindelin | 24 July 2007, 02:18:28 UTC | rebase -i: exchange all "if [ .. ]" by "if test .." This patch is literally :%s/if \[ *\(.*[^ ]\) *\]/if test \1/ in vi, after making sure that the other instances of "[..]" are not actually invocations of "test". Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 July 2007, 06:06:12 UTC |
dfa49f3 | Johannes Schindelin | 23 July 2007, 22:45:49 UTC | Shut "git rebase -i" up when no --verbose was given Up to now, git rebase -i was quite chatty, showing through all the nice core programs it called. Now it only shows a progress meter by default. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 July 2007, 06:04:15 UTC |
7296096 | Johannes Schindelin | 24 July 2007, 00:03:26 UTC | mailinfo: fix 'fatal: cannot convert from utf-8 to utf-8' For some reason, I got this error message. Maybe it does not make sense, but then we should not really try to convert the text when it is not necessary. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 July 2007, 05:38:50 UTC |
0eafba1 | Paul Mackerras | 23 July 2007, 11:35:03 UTC | gitk: Wait for the window to become visible after creating it When the git log process returned an error immediately, we were sometimes getting no main window and no error window displayed, with the gitk process just hanging waiting for something. It appears that the tkwait in show_error, which waits for the error window to be destroyed, wasn't sufficient to allow the main window or the error window to be mapped. This adds a wait in the main startup code after the main window has been created to wait until it is visible. This seems to fix the problem. Signed-off-by: Paul Mackerras <paulus@samba.org> | 23 July 2007, 11:35:03 UTC |
7d5266a | Shawn O. Pearce | 22 July 2007, 08:49:06 UTC | git-gui: Avoid unnecessary symbolic-ref call during checkout If we are checking out the branch we are already on then there is no need to call symbolic-ref to update the HEAD pointer to the "new" branch name, it is already correct. Currently this situation does not happen very often, but it can be seen in some workflows where the user always recreates their local branch from a remote tracking branch and more-or-less ignores what branch he/she is on right now. As they say, ignorance is bliss. This case will however become a tad more common when we overload checkout_op to actually also perform all of our merges. In that case we will likely see that the branch we want to "checkout" is the current branch, as we are actually just merging into it. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 23 July 2007, 05:28:35 UTC |
a813988 | Shawn O. Pearce | 23 July 2007, 05:11:08 UTC | git-gui: Refactor current branch menu items to make i18n easier The i18n team has also identified a rather ugly block of code in git-gui that is used to make a pair of Repository menu items show the current branch name. This code is difficult to convert to use [mc ...] to lookup the translation, so I'm refactoring it into a procedure. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 23 July 2007, 05:11:08 UTC |
83751fc | Shawn O. Pearce | 23 July 2007, 04:36:39 UTC | git-gui: Refactor diff popup into a procedure to ease i18n work The folks working on the i18n version of git-gui have had some trouble trying to convert these English strings into [mc] calls due to the double evaluation. Moving this block into a standard procedure eliminates the double evaluation, making their work easier. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 23 July 2007, 04:36:39 UTC |
9c5a3c7 | Shawn O. Pearce | 23 July 2007, 04:20:04 UTC | git-gui: Paper bag fix quitting crash after commit My earlier introduction of the GITGUI_BCK file (which saves the user's commit message buffer while they are typing it) broke the Quit function. If the user makes a commit we delete the GITGUI_BCK file; if they then immediately quit the application we fail to rename the GITGUI_BCK file to GITGUI_MSG. This is because the file does not exist, but our flag still says it does. The root cause is we did not unset the flag during commit. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 23 July 2007, 04:20:04 UTC |
e7d7b1a | Shawn O. Pearce | 23 July 2007, 04:12:30 UTC | git-gui: Clarify meaning of add tracked menu option Junio recently pointed out on the mailing list that our "Add Existing" feature is a lot like `git add -u`, which is generally described as "(Re)Add Tracked Files". This came up during discussion of how to translate "Add Existing" into Japanese, as the individual working on the translation was not quite sure what the option meant and therefore had some trouble selecting the best translation. I'm changing the menu option to "Add Tracked Files To Commit" and the button to "Add Tracked". This should help new users to better understand the actions behind those GUI widgets. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 23 July 2007, 04:12:30 UTC |
a781785 | Jakub Narebski | 22 July 2007, 21:41:20 UTC | gitweb: Fix support for legacy gitweb config for snapshots Earlier commit which cleaned up snapshot support and introduced support for multiple snapshot formats changed the format of $feature{'snapshot'}{'default'} (gitweb configuration) and gitweb.snapshot configuration variable (repository configuration). It supported old gitweb.snapshot values of 'gzip', 'bzip2' and 'zip' and tried to support, but failed to do that, old values of $feature{'snapshot'}{'default'}; at least those corresponding to old gitweb.snapshot values of 'gzip', 'bzip2' and 'zip', i.e. ['x-gzip', 'gz', 'gzip'] ['x-bzip2', 'bz2', 'bzip2'] ['x-zip', 'zip', ''] This commit moves legacy configuration support out of feature_snapshot subroutine to separate filter_snapshot_fmts subroutine. The filter_snapshot_fmts is used on result on result of gitweb_check_feature('snapshot'). This way feature_snapshot deals _only_ with repository config. As a byproduct you can now use 'gzip' and 'bzip2' as aliases to 'tgz' and 'tbz2' also in $feature{'snapshot'}{'default'}, not only in gitweb.snapshot. While at it do some whitespace cleanup: use tabs for indent, but spaces for align. Noticed-by: Matt McCutchen <hashproduct@gmail.com> Signed-off-by: Jakub Narebski <jnareb@gmail.com> Tested-by: Matt McCutchen <hashproduct@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 July 2007, 23:35:50 UTC |
16a7fcf | Johannes Schindelin | 22 July 2007, 20:20:26 UTC | fsck --lost-found: write blob's contents, not their SHA-1 When looking for a lost blob, it is much nicer to be able to grep through .git/lost-found/other/* than to write an inefficient loop over the file names. So write the contents of the dangling blobs, not their object names. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 July 2007, 22:59:27 UTC |
d23d98d | Shawn O. Pearce | 19 July 2007, 04:37:58 UTC | [PATCH] gitk: Bind keyboard actions to the command key on Mac OS git-gui already uses the command key for accelerators, but gitk has never done so. I'm actually finding it very hard to move back and forth between the two applications as git-gui is following the Mac OS X conventions and gitk is not. This trick is the same one that git-gui uses to determine which key to bind actions to. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Paul Mackerras <paulus@samba.org> | 22 July 2007, 12:25:46 UTC |
86da5b6 | Mark Levedahl | 17 July 2007, 22:42:04 UTC | [PATCH] gitk: Ignore ctrl-z as EOF on windows Cygwin's Tcl is configured to honor any occurence of ctrl-z as an end-of-file marker, while some commits in the git repository and possibly elsewhere include that character in the commit comment. This causes gitk ignore commit history following such a comment and incorrect graphs. This change affects only Windows as Tcl on other platforms already has eofchar == {}. This fixes problems noted by me and by Ray Lehtiniemi, and the fix was suggested by Shawn Pierce. Signed-off-by: Mark Levedahl <mdl123@verizon.net> Signed-off-by: Paul Mackerras <paulus@samba.org> | 22 July 2007, 12:25:46 UTC |
ef3192b | Paul Mackerras | 22 July 2007, 12:05:30 UTC | gitk: Make the fake commit for the index changes green rather than magenta The magenta was a bit close in color to the normal blue commits. This makes them green instead as suggested by Linus. Signed-off-by: Paul Mackerras <paulus@samba.org> | 22 July 2007, 12:05:30 UTC |
c4640fe | Marco Costalba | 22 July 2007, 08:23:05 UTC | Avoid to duplicate commit message when is not encoded When a commit message doesn't have encoding information and encoding output is utf-8 (default) then an useless xstrdup() of commit message is done. If we assume most of users live in an utf-8 world, this useless copy is the common case. Performance issue found with KCachegrind. Signed-off-by: Marco Costalba <mcostalba@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 July 2007, 08:40:21 UTC |
e5633cb | Junio C Hamano | 22 July 2007, 06:18:33 UTC | Synonyms: -i == --regexp-ignore-case, -E == --extended-regexp These options to log family were too long to type. Give them shorter synonyms. Fix the parsing of the long options while at it. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 July 2007, 08:38:26 UTC |
7bd197c | Shawn O. Pearce | 22 July 2007, 08:09:53 UTC | git-gui: Fix unnecessary fast-forward during checkout If we are trying to checkout a local branch which is matched to a remote tracking branch, but the local branch is newer than the remote tracking branch we actually just want to switch to the local branch. The local branch is "Already up to date". Unfortunately we tossed away the local branch's commit SHA-1 and kept the remote tracking branch's SHA-1, which meant that the user lost the local changes when we updated the working directory. At least we did not update the local branch ref, so the user's data was still intact. We now toss the tracking branch's SHA-1 and replace with the local branch's SHA-1 before the checkout, ensuring that we pass of the right tree to git-read-tree when we update the working directory. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 22 July 2007, 08:09:53 UTC |
854ffd3 | Shawn O. Pearce | 21 July 2007, 20:32:42 UTC | git-gui: Completely remove my Tools/Migrate hack This menu option of Tools/Migrate has been living inside of git-gui as a local hack to support some coworkers of mine. It has no value to anyone outside of my day-job team and never really should have been in a release version of git-gui. So I'm pulling it out, so that nobody else has to deal with this garbage. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 22 July 2007, 07:08:34 UTC |
98ec4ad | David Kastrup | 21 July 2007, 23:53:49 UTC | Documentation/gitignore.txt: Fix the seriously misleading priority explanation Signed-off-by: David Kastrup <dak@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 July 2007, 06:04:20 UTC |
a644ffd | Junio C Hamano | 22 July 2007, 05:37:56 UTC | Fix VISUAL/EDITOR preference order in Documentation/config.txt. I screwed up when amending ef0c2abf. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 July 2007, 05:37:56 UTC |
a3c8ab3 | Matt McCutchen | 21 July 2007, 23:30:27 UTC | gitweb: snapshot cleanups & support for offering multiple formats - Centralize knowledge about snapshot formats (mime types, extensions, commands) in %known_snapshot_formats and improve how some of that information is specified. In particular, zip files are no longer a special case. - Add support for offering multiple snapshot formats to the user so that he/she can download a snapshot in the format he/she prefers. The site-wide or project configuration now gives a list of formats to offer, and if more than one format is offered, the "_snapshot_" link becomes something like "snapshot (_tar.bz2_ _zip_)". - If only one format is offered, a tooltip on the "_snapshot_" link tells the user what it is. - Fix out-of-date "tarball" -> "archive" in comment. Alert for gitweb site administrators: This patch changes the format of $feature{'snapshot'}{'default'} in gitweb_config.perl from a list of three pieces of information about a single format to a list of one or more formats you wish to offer from the set ('tgz', 'tbz2', 'zip'). Update your gitweb_config.perl appropriately. There was taken care for old-style gitweb configuration to work as it used to, but this backward compatibility works only for the values which correspond to gitweb.snapshot values of 'gzip', 'bzip2' and 'zip', i.e. ['x-gzip', 'gz', 'gzip'] ['x-bzip2', 'bz2', 'bzip2'] ['x-zip', 'zip', ''] The preferred names for gitweb.snapshot in repository configuration have also changed from 'gzip' and 'bzip2' to 'tgz' and 'tbz2', but the old names are still recognized for compatibility. Signed-off-by: Matt McCutchen <hashproduct@gmail.com> Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 July 2007, 05:29:28 UTC |
6368f3f | Johannes Schindelin | 21 July 2007, 17:09:41 UTC | rebase -i: call editor just once for a multi-squash Sometimes you want to squash more than two commits. Before this patch, the editor was fired up for each squash command. Now the editor is started only with the last squash command. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 July 2007, 23:04:13 UTC |
54febd4 | Shawn O. Pearce | 20 July 2007, 08:10:13 UTC | git-gui: Internally allow fetch without storing for future pull support This is actually just an underlying code improvement that has no user visible component yet. UI improvements to actually fetch and merge via an arbitrary remote with no tracking branches must still follow to make this change useful for the end-user. Our tracking branch specifications are a Tcl list of three components: - local tracking branch name - remote name/url - remote branch name/tag name This change just makes the first element optional. If it is an empty string we will run the fetch, but have the value be saved only into the special .git/FETCH_HEAD, where we can pick it up and use it for this one time operation. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 21 July 2007, 09:00:37 UTC |
dba0741 | Shawn O. Pearce | 20 July 2007, 07:56:06 UTC | git-gui: Skip unnecessary read-tree work during checkout I totally missed this obvious optimization in the checkout code path. If our current repository HEAD is actually at the commit we are moving to, and we agreed to perform this switch earlier, then we have no files to update in the working directory and any stale mtimes are simply not of consequence right now. We can pretend like we ran a read-tree and skip right into the post-read-tree work, such as updating the branch and setting the symbolic-ref. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 21 July 2007, 09:00:37 UTC |
eea1ab6 | Shawn O. Pearce | 20 July 2007, 07:37:43 UTC | git-gui: Simplify error case for unsupported merge types If we are given a merge type we don't understand in checkout_op there is probably a bug in git-gui somewhere that allowed this unknown merge strategy to come into this part of the code path. We currently only recognize three merge types ('none', 'ff' and 'reset') but are going to be supporting more in the future. Rather than keep editing this message I'm going with a very generic "Uh, we don't do that!" type of error. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 21 July 2007, 09:00:37 UTC |
f66b8a6 | Shawn O. Pearce | 20 July 2007, 07:34:56 UTC | git-gui: Factor out common fast-forward merge case In both the ff and reset merge_types supported by checkout_op the result is the same if the merge base of our target commit and the existing commit is the existing commit: its a fast-forward as the existing commit is fully contained in the target commit. This minor cleanup in logic will make it easier to implement a new kind of merge_type that actually merges the two trees with a real merge strategy, such as git-merge-recursive. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 21 July 2007, 09:00:37 UTC |
60f7352 | Shawn O. Pearce | 20 July 2007, 06:13:24 UTC | git-gui: Save the merge base during checkout_op processing I've decided to teach checkout_op how to perform more than just a fast-forward and reset type of merge. This way we can also do a full recursive merge even when we are recreating an existing branch from a remote. To help with that process I'm saving the merge-base we computed during the ff/reset/fail decision process, in case we need it later on when we actually start a true merge operation. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 21 July 2007, 09:00:36 UTC |
4578c5c | Shawn O. Pearce | 21 July 2007, 08:57:57 UTC | git-gui: Automatically backup the user's commit buffer A few users have been seeing crashes in Tk when using the undo key binding to undo the last few keystroke events in the commit buffer. Unfortunately that means the user loses their commit message and must start over from scratch when the user restarts the process. git-gui now saves the user's commit message buffer every couple of seconds to a temporary file under .git (specifically .git/GITGUI_BCK). At exit time we rename this file to .git/GITGUI_MSG if there is a message, the file exists, and it is currently synchronized with the Tk buffer. Otherwise we do our usual routine of saving the Tk buffer to .git/GITGUI_MSG and delete .git/GITGUI_BCK, if it exists. During startup we favor .git/GITGUI_BCK over .git/GITGUI_MSG. This way a crash doesn't take out the user's message buffer but instead will cause the user to lose only a few keystrokes. Most people do not type more than 200 WPM, and with 30 possible saves per minute we are unlikely to lose more than 7 words. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 21 July 2007, 08:57:57 UTC |
e1abc69 | Linus Torvalds | 21 July 2007, 06:11:19 UTC | Fix up duplicate parents removal This removes duplicate parents properly, making gitk happy again. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 July 2007, 06:36:39 UTC |
69a9b41 | Jakub Narebski | 20 July 2007, 00:15:09 UTC | gitweb cleanup: Move @diff_opts declaration earlier Move @diff_opts declaration earlier, so that all gitweb options are together (and not separated by %feature hash and some subroutines), with the exception of $GITWEB_CONFIG which must be after all option variables including %feature hash. While at it, in the moved comment, note that diff option '-C' implies '-M', instead of suggesting that '-M', '-C' is required. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 20 July 2007, 08:21:06 UTC |
ef0c2ab | Adam Roben | 20 July 2007, 05:09:35 UTC | Add GIT_EDITOR environment and core.editor configuration variables These variables let you specify an editor that will be launched in preference to the EDITOR and VISUAL environment variables. The order of preference is GIT_EDITOR, core.editor, EDITOR, VISUAL. [jc: added a test and config variable documentation] Signed-off-by: Adam Roben <aroben@apple.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 20 July 2007, 07:46:34 UTC |
a7738c7 | Steven Grimm | 19 July 2007, 10:43:51 UTC | Document how to tell git to not launch a pager Signed-off-by: Steven Grimm <koreth@midwinter.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 20 July 2007, 07:01:26 UTC |
5dc2cae | Shawn O. Pearce | 19 July 2007, 06:24:25 UTC | git-gui: Completely remove support for creating octopus merges I'm working on refactoring the UI of the merge dialog, because as it currently stands the dialog is absolutely horrible, especially when you have 200+ branches available from a single remote system. In that refactoring I plan on using the choose_rev widget to allow the user to select exactly which branch/commit they want to merge. However since that only selects a single commit I'm first removing the code that supports octopus merges. A brief consultation on #git tonight seemed to indicate that the octopus merge strategy is not as useful as originally thought when it was invented, and that most people don't commonly use them. So making users fall back to the command line to create an octopus is actually maybe a good idea here, as they might think twice before they use it. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> | 19 July 2007, 06:24:25 UTC |