aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* run_diff_{files,index}(): update calling convention.Junio C Hamano2007-02-22
| | | | | | | They used to open and read index themselves, but they now expect their callers to do so. Signed-off-by: Junio C Hamano <junkio@cox.net>
* update-index: do not die too early in a read-only repository.Junio C Hamano2007-02-22
| | | | | | | | | | | This delays the error exit from hold_lock_file_for_update() in update-index, so that "update-index --refresh" in a read-only repository can still report what paths are stat-dirty before exiting. Also it makes -q to squelch the error message. Signed-off-by: Junio C Hamano <junkio@cox.net>
* git-status: do not be totally useless in a read-only repository.Junio C Hamano2007-02-22
| | | | | | | | | | | | This makes git-status work semi-decently in a read-only repository. Earlier, the command simply died with "cannot lock the index file" before giving any useful information to the user. Because index won't be updated in a read-only repository, stat-dirty paths appear in the "Changed but not updated" list. Signed-off-by: Junio C Hamano <junkio@cox.net>
* GIT 1.5.0v1.5.0Junio C Hamano2007-02-14
|
* Add release notes to the distribution.Junio C Hamano2007-02-13
| | | | | | | | This also adds a hook in the Makefile I can use to automatically include pointers to documentation for older releases when updating the pages at http://kernel.org/pub/software/scm/git/docs/. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Merge branch 'master' of git://repo.or.cz/git-guiJunio C Hamano2007-02-13
|\ | | | | | | | | * 'master' of git://repo.or.cz/git-gui: git-gui: fix typo in GIT-VERSION-GEN, "/dev/null" not "/devnull"
| * git-gui: fix typo in GIT-VERSION-GEN, "/dev/null" not "/devnull"Andy Parkins2007-02-13
| | | | | | | | | | Signed-off-by: Andy Parkins <andyparkins@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | Documentation: Moving out of detached HEAD does not warn anymore.Junio C Hamano2007-02-13
| | | | | | | | | | | | | | | | | | The documentation still talked about the unnecessary 'safety' in git-checkout. Pointed out by Matthias Lederhofer. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Mark places that need blob munging later for CRLF conversion.Linus Torvalds2007-02-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Update RPM core package descriptionNicolas Pitre2007-02-13
| | | | | | | | | | | | | | Git isn't as stupid as it used to be Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Fix potential command line overflow in hooks--updateAndy Parkins2007-02-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a repository with a large number of refs, the following command line could easily overflow the command line size limitations git-rev-list $newref $(git-rev-parse --not --all) Fortunately, git-rev-list already has the means to cope with this situation with the --stdin switch git-rev-parse --not --all | git-rev-list --stdin $newref Which is exactly what this patch does. Signed-off-by: Andy Parkins <andyparkins@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | git-gc: run pack-refs by default unless the repo is bareJohannes Schindelin2007-02-13
| | | | | | | | | | | | | | | | The config variable gc.packrefs is tristate now: "true", "false" and "notbare", where "notbare" is the default. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | "git-fetch --tags $URL" should not overwrite existing tagsJunio C Hamano2007-02-12
| | | | | | | | | | | | | | | | Use the same --exclude-existing filter as we use for automatic tag following to avoid overwriting existing tags with replacement ones the other side created. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | for-each-reflog: not having $GIT_DIR/logs directory is not an error.Junio C Hamano2007-02-12
| | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Do not forget to pack objects reachable from HEAD reflog.Junio C Hamano2007-02-12
| | | | | | | | | | | | | | Similar to commit eb8381c8, we need to use for_each_reflog() to make sure we do not miss objects reachable from HEAD reflog. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Work around Subversion race in git-svn tests.Michael Spang2007-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the git-svn tests can fail on fast machines due to a race in Subversion: if a file is modified in the same second it was checked out (or in for that matter), Subversion will not consider it modified. This works around the problem by increasing the timestamp by one second before each commit. [jc: with "touch -r -d" replacement from Eric] Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Michael Spang <mspang@uwaterloo.ca> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Clarify that git-update-server-info should be run for every git-pushPavel Roskin2007-02-12
| | | | | | | | | | | | | | | | The old text suggested that git-update-server-info only needs to be run if new tags or branches are created, but not for new commits. Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | blameview: Move the commit info to a pane below the blame window.Aneesh Kumar K.V2007-02-12
| | | | | | | | | | | | | | Also spawn the the new blameview in the background Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | git merge documentation: -m is optionalMatthias Lederhofer2007-02-12
| | | | | | | | | | | | | | Changed -m=<msg> to -m <msg> too. Signed-off-by: Matthias Lederhofer <matled@gmx.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Make gitk save and restore window pane position on Linux and Cygwin.Mark Levedahl2007-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Subtle bugs remained on both Cygwin and Linux that caused the various window panes to be restored in positions different than where the user last placed them. Sergey Vlasov posed a pair of suggested fixes to this, what is done here is slightly different. The basic fix here involves a) explicitly remembering and restoring the sash positions for the upper window, and b) using paneconfigure to redundantly set height and width of other elements. This redundancy is needed as Cygwin Tcl has a nasty habit of setting pane sizes to zero if their slaves are not configured with a specific size, but Linux Tcl does not honor the specific size given. Signed-off-by: Mark Levedahl <mdl123@verizon.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Add RPM target for git-guiJunio C Hamano2007-02-12
| | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Link git-gui into the master Makefile.Shawn O. Pearce2007-02-12
| | | | | | | | | | | | | | | | | | | | I'm exporting gitexecdir because git-gui wants to know where it should install git-gui and git-citool. These belong under gitexecdir, just like git-diff, as the git wrapper is able to invoke these commands for the end-user. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'master' of git://repo.or.cz/git-guiJunio C Hamano2007-02-12
|\ \ | |/ | | | | | | | | | | | | | | | | * 'master' of git://repo.or.cz/git-gui: git-gui: Change base version to 0.6. git-gui: Guess our version accurately as a subproject. git-gui: Handle gitgui tags in version gen. git-gui: Generate a version file on demand. git-gui: Rename GIT_VERSION to GITGUI_VERSION. git-gui: Allow gitexecdir, INSTALL to be set by the caller.
| * git-gui: Change base version to 0.6.gitgui-0.6.0Shawn O. Pearce2007-02-12
| | | | | | | | | | | | | | | | This is the start of the 0.6 series of git-gui. I'm calling it 0.6 (rather than any other value) as I already had a private tag on one system based on 0.5, and that tag is quite a bit behind this version. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Guess our version accurately as a subproject.Shawn O. Pearce2007-02-12
| | | | | | | | | | | | | | | | | | When we are included as a subproject, such as how git.git carries us, we want to retain our own version number and not the version number assigned by git.git's own tags. Consequently we need to locate the correct tag which applies to our tree content and its commit lineage. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Handle gitgui tags in version gen.Shawn O. Pearce2007-02-12
| | | | | | | | | | | | | | | | | | I've decided to use gitgui-0.5 as the format for tags in the git-gui repository. The prefix of gitgui was chosen here to make its namespace different from the namespace used by git itself, allowing developers to pull both tag namespaces into the same repository. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Generate a version file on demand.Shawn O. Pearce2007-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Because git-gui is being shipped as a subproject of the main Git project and will often have a different lifecycle than the main Git project, we should ship our own version number in the release tarball rather than relying on the main Git version file. Git's master Makefile will invoke our own with the target dist-version, asking us to save off our GITGUI_VERSION value into our own version file, so that our GIT-VERSION-GEN script can recover it at build time. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Rename GIT_VERSION to GITGUI_VERSION.Shawn O. Pearce2007-02-12
| | | | | | | | | | | | | | | | Now that the decision has been made to treat git-gui as a subproject, rather than merging it directly into git, we should use a different substitution for our version value to avoid any possible confusion. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Allow gitexecdir, INSTALL to be set by the caller.Shawn O. Pearce2007-02-12
| | | | | | | | | | | | | | | | When used as a subproject within git.git our Makefile must honor the gitexecdir which git.git's Makefile is passing down to us, ensuring that we install our executables into the libexec chosen by the end-user or packager. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | import-tars: brown paper bag fix for file mode.Michael Loeffler2007-02-12
| | | | | | | | | | | | | | | | There is a bug with this $git_mode variable which should be 0644 or 0755, but nothing else I think. Signed-off-by: Michael Loeffler <zvpunry@zvpunry.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | fast-import: Support reusing 'from' and brown paper bag fix reset.Shawn O. Pearce2007-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was suggested on the mailing list that being able to use `from` in any commit to reset the current branch is useful in some types of importers, such as a darcs importer. We originally did not permit resetting an existing branch with a new `from` command during a `commit` command, but this restriction was only to help debug the hacked up cvs2svn that Jon Smirl was developing in parallel with git-fast-import. It is probably more of a problem to disallow it than to allow it. So now we permit a `from` during any `commit`. While making the changes required to permit multiple `from` commands on the same branch, I discovered we no longer needed the last_commit field to be set to 0 during a reset, so that was removed. (Reset was originally setting the field to 0 to signal cmd_from() that it was OK to execute on the branch.) While poking around in this section of fast-import I also realized the `reset` command was not working as intended if the corresponding `from` command was omitted (as allowed by the BNF grammar and the code). If `from` was omitted we cleared out the tree but we left the tree SHA-1 and parent commit SHA-1 intact. This is not what the user intended in this case. Instead they would be trying to reset the branch to have no parent and to have no tree, making the branch look new-born during the next commit. We now clear these SHA-1 values during `reset`, ensuring the branch looks new-born if `from` does not get supplied. New test cases for these were also added. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | Merge git-guiJunio C Hamano2007-02-11
|\ \ | |/ | | | | | | | | | | | | | | | | This merges git-gui project of Shawn as a subproject of git.git at git-gui/ subdirectory. This merge only melds two histories together. The toplevel Makefile does not even know about git-gui yet. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * git-gui: Stop deleting gitk preferences.Shawn O. Pearce2007-02-11
| | | | | | | | | | | | | | | | Now that git 1.5.0 and later contains a version of gitk that uses correct geometry on Windows platforms, even if ~/.gitk exists, we should not delete the user's ~/.gitk to work around the bug. It is downright mean to remove a user's preferences for another app. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Focus into blame panels on Mac OS.Shawn O. Pearce2007-02-09
| | | | | | Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Improve annotated file display.Shawn O. Pearce2007-02-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than trying to mark the background color of the line numbers to show which lines have annotated data loaded, we now show a ruler between the line numbers and the file data. This ruler is just 1 character wide and its background color is set to grey to denote which lines have annotation ready. I had to make this change as I kept loosing the annotation marker when a line was no longer colored as part of the current selection. We now color the lines blamed on the current commit in yellow, the lines in the commit which came after (descendant) in red (hotter, less tested) and the lines in the commit before (ancestor) in blue (cooler, better tested). Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Jump to the first annotation block as soon as its available.Shawn O. Pearce2007-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To help clue users into the fact that annotation data arrives incrementally, and that they should try to locate the region they want while the tool is running, we jump to the first line of the first annotation if the user has not already clicked on a line they are interested in and if the window is still looking at the very top of the file. Since it takes a second (at least on my PowerBook) to even generate the first annotation for git-gui.sh, the user should have plenty of time to adjust the scrollbar or click on a line even before we get that first annotation record in, which allows the user to bypass our automatic jumping. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Redesign the display of annotated files.Shawn O. Pearce2007-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using 180 columns worth of screen space to display just 20 columns of file data and 160 columns worth of annotation information is not practically useful. Users need/want to see the file data, and have the anotation associated with it displayed in a detail pane only when they have focused on a particular region of the file. Now our file viewer has a small 10-line high pane below the file which shows the commit message for the commit this line was blamed on. The columns have all been removed, except the current line number column as that has some real value when trying to locate an interesting block. To keep the user entertained we have a progress meter in the status bar of the viewer which lets them know how many lines have been annotated, and how much has been completed. We use a grey background on the line numbers for lines which we have obtained annotation from, and we color all lines in the current commit with a yellow background, so they stand out when scanning through the file. All other lines are kept with a white background, making the yellow really pop. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Use git-config now over git-repo-config.Shawn O. Pearce2007-02-08
| | | | | | | | | | | | | | | | | | | | Now that core Git has "renamed" git-repo-config to git-config, we should do the same. I don't know how long core Git will keep the repo-config command, and since git-gui's userbase is so small and almost entirely on some flavor of 1.5.0-rc2 or later, where the rename has already taken place, it should be OK to rename now. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Relabel the Add All action.Shawn O. Pearce2007-02-08
| | | | | | | | | | | | | | | | | | | | | | | | One user that I spoke with recently was confused why the 'Add All' button did not add all of his 'Changed But Not Updated' files. The particular files in question were new, and thus not known to Git. Since the 'Add All' routine only updates files which are already tracked, they were not added automatically. I suspect that calling this action 'Add Existing' would be less confusing, so I'm renaming it. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Select subcommands like git does.Shawn O. Pearce2007-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If we are invoked as `git-foo`, then we should run the `foo` subcommand, as the user has made some sort of link from `git-foo` to our actual program code. So we should honor their request. If we are invoked as `git-gui foo`, the user has not made a link (or did, but is not using it right now) so we should execute the `foo` subcommand. We now can start the single commit UI mode via `git-citool` and also through `git gui citool`. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: View blame from the command line.Shawn O. Pearce2007-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Viewing annotated files is one of those tasks that is relatively difficult to do in a simple vt100 terminal emulator. The user really wants to be able to browse through a lot of information, and to interact with it by navigating through revisions. Now users can start our file viewer with annotations by running 'git gui blame commit path', thereby seeing the contents of the given file at the given commit. Right now I am being lazy by not allowing the user to omit the commit name (and have us thus assume HEAD). Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Optionally save commit buffer on exit.Shawn O. Pearce2007-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the commit area does not exist, don't save the commit message to a file, or the window geometry. The reason I'm doing this is I want to make the main window entirely optional, such as if the user has asked us to show a blame from the command line. In such cases the commit area won't exist and trying to get its text would cause an error. If we are running without the commit message area, we cannot save our window geometry either, as the root window '.' won't be a normal commit window. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Separate transport/branch menus from multicommit.Shawn O. Pearce2007-02-08
| | | | | | | | | | | | These are now controlled by the transport and branch options, rather than the multicommit option. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Refactor single_commit to a proc.Shawn O. Pearce2007-02-08
| | | | | | | | | | | | | | | | This is a minor code cleanup to make working with what used to be the $single_commit flag easier. Its also to better handle various UI configurations, depending on command line parameters given by the user, or perhaps user preferences. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Replace \ with \\ when showing paths.Shawn O. Pearce2007-02-08
| | | | | | | | | | | | | | | | | | We already replace \n with \\n so that Tk widgets don't start a new display line with part of a file path which is just unlucky enough to contain an LF. But then its confusing to read a path whose name actually contains \n as literal characters. Escaping \ to \\ would make that case display as \\n, clarifying the output. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Support keyboard traversal in browser.Shawn O. Pearce2007-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Users want to navigate the file list shown in our branch browser windows using the keyboard. So we now support basic traversal with the arrow keys: Up/Down: Move the "selection bar" to focus on a different name. Return: Move into the subtree, or open the annotated file. M1-Right: Ditto. M1-Up: Move to the parent tree. M1-Left: Ditto. Probably the only feature missing from this is to key a leading part of the file name and jump directly to that file (or subtree). This change did require a bit of refactoring, to pull the navigation logic out of the mouse click procedure and into more generic routines which can also be used in bindings. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Update known branches during rescan.Shawn O. Pearce2007-02-08
| | | | | | | | | | | | | | | | | | | | If the user has created (or deleted) a branch through an external tool, and uses Rescan, they probably are trying to make git-gui update to show their newly created branch. So now we load all known heads and update the branch menu during any rescan operation, just in-case the set of known branches was modified. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Assign background colors to each blame hunk.Shawn O. Pearce2007-01-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To help the user visually see which lines are associated with each other in the file we attempt to sign a unique background color to each commit and then render all text associated with that commit using that color. This works out OK for a file which has very few commits in it; but most files don't have that property. What we really need to do is look at what colors are used by our neighboring commits (if known yet) and pick a color which does not conflict with our neighbor. If we have run out of colors then we should force our neighbor to recolor too. Yes, its the graph coloring problem. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Use a grid layout for the blame viewer.Shawn O. Pearce2007-01-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using a panedwindow to display the blame viewer's individual columns just doesn't make sense. Most of the important data fits within the columns we have allocated, and those that don't the leading part fits and that's good enough. There are just too many columns within this viewer to let the user sanely control individual column widths. This change shouldn't really be an issue for most git-gui users as their displays should be large enough to accept this massive dump of data. We now also have a properly working horizontal scrollbar for the current file data area. This makes it easier to get away with a narrow window when screen space is limited, as you can still scroll around within the file content. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * git-gui: Install column headers in blame viewer.Shawn O. Pearce2007-01-29
| | | | | | | | | | | | | | | | | | I started to get confused about what each column meant in the blame viewer, and I'm the guy who wrote the code! So now git-gui hints to the user about what each column is by drawing headers at the top. Unfortunately this meant I had to use those dreaded frame objects which seem to cause so much pain on Windows. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>