.. -*- coding: utf-8 -*- project hgview ============== :creation date: 2007/01/31 qt4 based Mercurial log navigator ======================================================== hgview: A fast Mercurial_ log navigator written in pyqt4 ======================================================== .. image:: http://www.logilab.org/image/19894?vid=download :width: 350 :align: right hgview is a simple tool aiming at visually navigate in a Mercurial_ repository history. It is written in Python/Qt4 with quick and efficient key-based navigation in mind, trying to be fast enough to be usable for big repositories. Features ======== - easy key-based navigation in revisions's history of a repo (with browsing history), - basic support for mq_ patch queues, - automatically refresh the displayed revision graph when the repository is being modified (commit, pull, updates, etc.) - display current working directory as a special node in the graph (when there are local modifications), - view a graphical side-by-side diff for a given file, allowing to easily compare any couple of revisions for a file - view the revision graph for a file (filelog), - navigate in the manifest at any chosen revision (without modifying the working directory), - basic support for the bfiles_ extension, - search in the whole history (search in diff contents and commit messages), - directly go to a given revision (can be any understood revision format; rev number, ID, tag, brnch name, etc.) .. _mq: http://mercurial.selenic.com/wiki/MqExtension .. _bfiles: http://mercurial.selenic.com/wiki/BfilesExtension Installation ============ Debian and Ubuntu user can get the latest stable version using the `logilab's debian repository`_. Note that a hgview package_ is now available in Debian testing repositories. You may also retrieve the lastest version of the code using Mercurial_, typing: hg clone http://hg.logilab.org/hgview .. _Mercurial: http://www.selenic.com/mercurial/ .. _`logilab's debian repository`: http://www.logilab.org/card/LogilabDebianRepository .. _package: http://packages.debian.org/en/source/sid/hgview To test it, just go in the ``hgview`` directory and type: ./bin/hgview or run the command, also from the ``hgview`` directory: hg --config extensions.hgext.hgview=hgext/hgview.py qv If you like it, just add in the ``[extensions]`` section of your ``~/.hgrc``:: [extensions] hgext.hgview=/path/to/hgview/hgext/hgview.py Dependencies ============ hgview depends on several third-party python packages: - python 2.5 - Mercurial 1.1 - pyqt4_ **with** qscintilla_ - `mx.DateTime`_ - PyQt4 dev tools are also required to run it from sources, which may require the installation of a specific package; on Debian/Ubuntu, the package `pyqt4-dev-tools`_ must be installed. .. _pyqt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro .. _qscintilla: http://www.riverbankcomputing.co.uk/software/qscintilla/intro .. _`mx.DateTime`: http://www.egenix.com/products/python/mxBase/mxDateTime .. _`pyqt4-dev-tools`: http://packages.debian.org/en/sid/pyqt4-dev-tools version 0.9.0 ------------- first official release, published as beta :publication date: 2008/10/06 :expected date: n/a ticket #5670: display branch name ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.000 :state: rejected ticket #3632: search doesnt work ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.000 :state: validation pending trace:: auc@crater:~/rep/public/hgview$ hgview.py Traceback (most recent call last): File "public/hgview/hgview.py", line 521, in on_entry_find_changed res = self.find_next_row( it ) File "public/hgview/hgview.py", line 464, in find_next_row rev, text, author_id, date_, log, files, tags = self.repo.read_node( node ) File "public/hgview/hgrepo.py", line 155, in read_node _, author, date, filelist, log, _ = changelog.read( node ) File "/var/lib/python-support/python2.4/mercurial/changelog.py", line 86, in read return self.extract(self.revision(node)) File "/var/lib/python-support/python2.4/mercurial/revlog.py", line 899, in revision rev = self.rev(node) File "/var/lib/python-support/python2.4/mercurial/revlog.py", line 475, in rev raise RevlogError(_('%s: no node %s') % (self.indexfile, hex(node))) File "/var/lib/python-support/python2.4/mercurial/node.py", line 17, in hex return binascii.hexlify(node) TypeError: b2a_hex() argument 1 must be string or read-only buffer, not RevNode ticket #3843: other search misbehaviors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.000 :state: validation pending Using 'find' doesn't yield unexpected results : * items matching search word in commit message (why not), * also file names (more dubious, seems redundant with the Find Files search box), BUT, * not the content of the diff. Comments :: On 2007/06/11 14:27 - acampeas wrote : There's a quick & dirty fix in repo for search over the diffs. > On 2007/06/11 14:34 - acampeas wrote : > Also the color highlighting on diff window is quite often wrongly placed. ticket #3442: clicking on Content behaves badly ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.250 :state: validation pending the Content marker seems to point randomly in the text buffer ticket #3745: Link navigation is broken ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.000 :state: validation pending Clicking on the hash part of "Parent: 72:769b2f556da1" should lead to the node. ticket #3741: Revision info lacks hash value ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.000 :state: validation pending for instance, Revision: 73 should read Revision: 73:6092e9f27e5c ticket #3444: remove filter dialog menu entry ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.250 :state: validation pending it's not used anymore ticket #3459: wrong default window position ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.250 :state: validation pending the default window position doesn't show the lower half of the window Comments :: On 2007/02/09 14:17 - laubry wrote : should be ok, the initial window pos in glade was wrong, and some default size were incorrectly set ticket #3463: bug on empty repo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.000 :state: validation pending a traceback shows up when running hgview on an empty repo:: $ hgview read_nodes 0.0 2.69412994385e-05 Computing graph... START ['0000000000000000000000000000000000000000'] done in 0.0 Traceback (most recent call last): File "/home/bidule/SB/public/hgview/hgview.py", line 357, in idle_fill_model graph.build(NMAX) File "/home/bidule/SB/public/hgview/buildtree.py", line 141, in build self.rownlines[rowno] = len(todo) IndexError: list assignment index out of range ticket #3436: search string is not highlighted in lists ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.000 :state: validation pending currently the search string is highlighted only in the text view of the revision. but : - The matching files should be highlighted in the file list - The matching words should be highlighted in the revision list Comments :: On 2008/09/19 12:15 - anon wrote : ticket #3450: support branches ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 2.000 :state: validation pending filter named branches Comments :: On 2008/10/02 12:15 - gtoutoungis wrote : Nous avons maintenant la possibilité de choisir une branche précise (soit pour la mettre en gras, le cas où le chechbox 'hide others' est désactivé , ou de cacher les autres branches le  cas où le chechbox 'hide others' est  activé. ticket #3439: improve graph lines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.250 :state: validation pending have some colors on the lines like in the original "hg view" make them clickable Comments :: On 2007/02/02 22:23 - laubry wrote : colors are working. need to make them clickable version 0.9.1 ------------- :publication date: 2008/11/23 :expected date: n/a ticket #6469: Help->About menu does not work ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.200 :state: validation pending The About menu does not work with hgview installed as a deb packages (might work if run from sources, I guess). ticket #6303: Warning traceback ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.250 :state: validation pending There is a remaining warning traceback displayed: hgview/gtk/graphrenderer.py:231: PangoWarning: pango_layout_set_markup_with_accel: Erreur à la ligne 1 : Référence d'entité non terminée layout.set_markup(markup) ticket #6301: print statement at startup ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.250 :state: validation pending There is a "debug" print statement remaining at startup, stating: /// version 0.10.0 -------------- :publication date: 2008/12/22 :expected date: n/a ticket #4337: [gtk] diff windows too small by default ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.000 :state: rejected When using in gtk mode, the diff windows original size is way too small (about 6 chars wide on my machine), and most of the space is taken up by the diffstat display. I think the diff itself could use about 75% of the screen width, leaving the 25 remaining % for the diffstat display. The Qt version does not has a correct behaviour for this. ticket #6195: revision are not ordered by date. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.500 :state: validation pending ticket #5398: hgview have no directory in ftp.logilab.org/pub ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.000 :state: validation pending there is no ftp distribution for hgview ticket #6736: lose the authors distinct colors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.300 :state: validation pending When we apply filter (branch) on the versions, we lose the authors distinct colors ticket #6417: remove print to terminal ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.000 :state: validation pending This appeared in 0.9.0. When starting hgview it prints :: /// This is probably debug that wasn't cleaned up. ticket #5725: help dialog box picks up current project ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.100 :state: validation pending using the help->about dialog box can give information about the project being browsed (especially if it's a Logilab project, with the appropriate structure). Solution is to use an absolute import for __pkginfo__ Comments :: On 2008/10/06 15:29 - afayolle wrote : to reproduce:: cd path/to/logilab/common hgview Then Help->About : the dialog box should display information about hgview, but I see stuff from logilab/common/__pkginfo__.py :: A propos de common common 0.35.0 useful miscellaneous modules used by Logilab projects ticket #6151: have intelligent messages for renaming (hg mv) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 1.000 :state: validation pending after "hg mv old_file new_file", we should have an intelligent message in hgview (compare with "hg view") Comments :: On 2008/09/23 14:08 - anon wrote : and in the case of a deletion, ony say "_foo : deleted_" ticket #6733: display dates in current timezone ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.300 :state: validation pending Dates of changes are displayed in UTC : it would be nicer to get them in the local current timezone Comments :: On 2008/11/28 14:26 - afayolle wrote : time.localtime gives local time, and time.gmtime gives time in UTC. ticket #6805: integrate bboissin's fixes for mercurial 1.1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 1.000 :state: validation pending title says all. version 0.10.1 -------------- :publication date: 2009/01/20 :expected date: n/a ticket #7345: Fix Qt crash ~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.250 :state: validation pending reported by Hans Meine with patch version 0.10.2 -------------- :publication date: 2009/03/12 :expected date: n/a ticket #7350: Fix too many values to unpack errors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.200 :state: rejected The console in which I launch hgview has several occurences of :: Traceback (most recent call last): File "/home/alf/dev/public/hgview/hgview/gtk/hgview_gtk.py", line 595, in selection_changed buff, changes = self.repo.diff(self.repo.parents(node), node, rnode.files) ValueError: too many values to unpack Comments :: On 2009/02/18 11:39 - acampeas wrote : graz: you need to justify your rejection ticket #6767: diff don't work if the node has two parents ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 5.000 :state: validation pending Comments :: On 2009/02/18 11:38 - acampeas wrote : illustration ? i'm not seeing that ticket #6687: file filtering unusable ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.500 :state: validation pending if I setup a filter based on file names, the tree view becomes a complete mess. To reproduce : launch hgview on hgview's own repo, and filter eg. on "debian" The tree view is displayed in a random order (neither by date or rev id or anything) which makes this feature unusable. __the solution will be by reordering the revisions node by their specific number and hiding the graph. ticket #7932: find_next triggers a trace ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.000 :state: validation pending see : :: Traceback (most recent call last): File "/home/auc/rep/public/hgview/hgview/gtk/hgview_gtk.py", line 49, in watched ret = meth(self, *args, **kw) File "/home/auc/rep/public/hgview/hgview/gtk/hgview_gtk.py", line 766, in on_button_find_clicked res = self.find_next_row( it ) File "/home/auc/rep/public/hgview/hgview/gtk/hgview_gtk.py", line 708, in find_next_row rexp = re.compile( txt ) File "/usr/lib/python2.5/re.py", line 188, in compile return _compile(pattern, flags) File "/usr/lib/python2.5/re.py", line 241, in _compile raise error, v # invalid expression sre_constants.error: unbalanced parenthesis ticket #7975: change behavior of "Find next" button. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.500 :state: validation pending actually the find next button move from revision to next, but we need that this button move the focus between the matched text occurrences ticket #4121: search works incorrectly ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.200 :state: validation pending When doing a search (Find textarea) on a big project, hgview has a few behaviors which are problematic : * we loose focus of the window when searching * when the result is found in a diff it doesn't scroll down to where it has highlighted the result * the highlight is not always at the right place (line below for example) For every find it would be nice to have the number of occurrences found in the selected diff displayed. Comments :: On 2009/01/21 17:53 - gtoutoungis wrote : I added the possibility of scrolling to the first founded text in the diff part. but for the other points in the comment, i can't produce the mentioned behaviar. > On 2009/01/26 09:47 - alutz wrote : > the incorrect highlight can be reproduced with "background" on the hgview > repository (3rd result) ticket #7396: problem with spaces in file names ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.000 :state: validation pending Reported by "Paul 'Satoshi' Hachmann". I committed a file named "test file with space.txt" in my local hg repository. Under gtk, the revision log (lower left pane) shows:: === space.txt === @@ -0,0 +1,2 @@ +This is a test. + And the lower-rigth pane shows 'space.txt' under files. Other files (i.e. ones without embedded spaces) show their full names and paths. Files *with* embedded spaces only show everything after the last space. (In QT, I can't see anything in either of the lower panes, apparently due to a variant of the problem in #7350) I'm using hg 1.0.1 and hview 0.10.1. ticket #7316: add a --version command line option ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.500 :state: validation pending hgview --version : displays the version of hgview and exit. version 0.11.0 -------------- :publication date: 2009/03/23 :expected date: n/a ticket #3432: file diff for merge points is not working ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.000 :state: rejected Currently the diff displayed for a merge point is against one of the parent only. I need to understand the algorithm used in hgk first. ticket #6715: about window doesn't show ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.000 :state: rejected When I click on the About button, nothing happens and I get the following traceback on the prompt :: Traceback (most recent call last): File "/usr/lib/python2.5/site-packages/hgview/gtk/hgview_gtk.py", line 198, in on_about_activate from __pkginfo__ import modname, version, short_desc, long_desc ImportError: No module named __pkginfo__ in hgview 0.9.1-1 ticket #6419: add hgview --version ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.000 :state: rejected add the --version which prints the current version of hgview Comments :: On 2009/03/13 13:30 - sthenault wrote : c'est pas forcément la bonne manière de faire de rejeter un ticket pour dire qu'il a été fait. Tu peux ajouter un ticket à une version déja publiée en passant par la vue d'édition de la version. ticket #8399: mercurial 1.2 compatibility ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.500 :state: validation pending Has anyone else tried hgview (http://www.logilab.org/project/hgview) under Mercurial 1.2? It's not showing log messages for me. And it prints this stack trace many many times: :: Traceback (most recent call last): File "/home/scratch/src/hgview/build/lib/hgview/gtk/graphrenderer.py",line 203, in on_render node_branches = self.app.get_node_branches() File "/home/scratch/src/hgview/build/lib/hgview/gtk/hgview_gtk.py", line 160, in get_node_branches node_info = self.repo.read_node(node) File "/home/scratch/src/hgview/build/lib/hgview/hgrepo.py", line 181, in read_node if node in nodeinfo: TypeError: list objects are unhashable If I downgrade back to 1.1.2, both problems go away. (reported by Greg Ward on the Mercurial mailing list) Comments :: On 2009/03/12 13:22 - anon wrote : I don't know Python, so I *know* this isn't the "correct" solution, but it works for me: --- a/hgview/hgrepo.py Mon Mar 02 08:37:31 2009 +0100 +++ b/hgview/hgrepo.py Thu Mar 12 08:21:37 2009 -0400 @@ -182,6 +182,8 @@ def read_node( self, node ): """Gather revision information from mercurial""" nodeinfo = self._cache + if node.__class__ == list: + node = node[0] if node in nodeinfo: return nodeinfo[node] NCOLORS = len(COLORS) On 2009/03/12 13:23 - anon wrote : Sorry about the formatting. --- a/hgview/hgrepo.py Mon Mar 02 08:37:31 2009 +0100 +++ b/hgview/hgrepo.py Thu Mar 12 08:21:37 2009 -0400 @@ -182,6 +182,8 @@ def read_node( self, node ): """Gather revision information from mercurial""" nodeinfo = self._cache + if node.__class__ == list: + node = node[0] if node in nodeinfo: return nodeinfo[node] NCOLORS = len(COLORS) > On 2009/03/25 03:00 - anon wrote : > I guess you know some python because your patch works ticket #8117: make hgview an hgext extension ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 1.000 :state: validation pending http://www.selenic.com/mercurial/wiki/index.cgi/WritingExtensions ticket #8569: update documentation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.100 :state: validation pending update README to explain that hgview can now be used as an extension. ticket #6381: branch information is not updated on reload ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.000 :state: deprecated If I reload a repository (using C-r) after committing some changes, the "default" branch note is not updated and stays at its previous position. I need to restart the application to get up to date information. version 0.11.1 -------------- :publication date: 2009/03/24 :expected date: n/a ticket #8713: fix the tarball ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.300 :state: validation pending Delete unused files version 0.11.2 -------------- fix __pkginfo__ stuff :publication date: 2009/03/24 :expected date: n/a ticket #8727: __pkginfo__ not by lgp ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.300 :state: validation pending The python package `hgview` installed in the hgview debian package miss the `__pkginfo__.py` file ticket #8729: be more robust in gview sources with "__pkginfo__" module ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.300 :state: validation pending Make any "import __pkginfo__" found in hgview sources be surrounded by "try/except" do it does not prevent hgview from running if it does not exists. Make setup.py do the copy of the __pkgfile__.py file into the hgview package directory (do not forget to remove it at the end of the setup.py file) version 0.11.3 -------------- This version is using the Gtk Toolkit. :expected date: n/a ticket #8126: diff doesn't work correctly on merge node in case of renamed or deleted files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 3.000 :state: open diff doesn't work correctly on merge nodes if we have commited a renamed or deleted files. ticket #6311: pb with file filter and branches ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.000 :state: open When there are branches, if whe apply file filter, result is not correct : logs whithout the selected file are selected and logs aren't sorted by date anymore. ticket #3739: Get rid of spurious (pango et al) warnings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 2.000 :state: open These are related to encoding issues. Need to declare preferred encodings in .hgviewrc for instance. ticket #3434: more speed improvement ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.000 :state: open keep in mind not to slow things down ticket #8470: bug on branch highlighting ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.000 :state: open branch highlighting doesn't work correctly; some parts of the branch are not highlighted. For instance the highlighting stops at some merge of a branch, or goes beyond a given branch. ticket #4605: Ability to filter commits by author(s), date(s), id(s) range(s) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 1.000 :state: open And combine such filters. Comments :: On 2009/04/03 13:16 - nchauvat wrote : facets? ticket #3461: weird behavior of the graph algorithm ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.000 :state: rejected sometimes the lines on the graph don't show up example: on mercurial crew repository between nodes 2380 and 2379 ticket #8119: window to view file history and diff ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 2.000 :state: rejected hg qtview, but not hg gtkview ticket #9318: hgview does not show files with changed modes in diffs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.000 :state: done hgview does not show files with changed modes in diffs Reproduction steps: .. sourcecode:: sh sfllaw@belgium:~$ mkdir foo sfllaw@belgium:~$ cd foo sfllaw@belgium:~/foo$ hg init sfllaw@belgium:~/foo$ touch me sfllaw@belgium:~/foo$ hg add me sfllaw@belgium:~/foo$ hg ci -m 'Added me' sfllaw@belgium:~/foo$ chmod +x me sfllaw@belgium:~/foo$ hg ci -m 'me is runnable' sfllaw@belgium:~/foo$ hgview Expected results: Both changesets indicate that an empty file has been changed, somehow. This is what hgk does. Actual results: It looks like no changes have been made. version 1.0.0 ------------- :publication date: 2009/06/05 :expected date: n/a ticket #8817: refresh doesn't work ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.000 :state: validation pending The refresh action doesn't work : view a repository, do some work in parallel, checkins, merges, etc, use Refresh and nothing shows up. ticket #9101: show file names on renaming ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.500 :state: validation pending show file names on renaming : when renaming a file, one should see in the body of the commit the full path of the two files like:: === path/to/file.py === moving "path/to/file.py" to "path/to/new/file.py" for now we see nothing, which is particulary confusing when the renaming is included in another commit with no special comment on that renaming, hence the fact that a renaming occured is invisible. Remark also that it is a regression as this was the default behavior in previous versions. ticket #3527: big commit takes ages to display ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 3.000 :state: validation pending on big commit (mostly initial commit) or commits with binary files, hgview freezes. Propose a heuristic where when there is more than say 10 files modified only the file names are shown with the possibility to show the diff. Also need to make sure we don't display binaries. Comments :: On 2007/02/09 14:21 - laubry wrote : improved it a bit, by inserting the diff's text as one single insert on the textbuffer. it's about twice as fast, but mercurial can also take a long time computing the diff. > On 2008/10/06 11:51 - gtoutoungis wrote : > Then it should run as an interruptible background task, so the window does not > freeze when displaying a big bad merge. On 2008/10/10 10:01 - ddouard wrote : big commits (typically merge ones) make also hgview eat too mush memory. ticket #3529: single file viewing ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 1.000 :state: validation pending allow for a quick view of a single file's history. Several options Use an option to consider the regexp as a simple string (and append ^ $):: $ hgview -s test/__ini__.py Have a contextual menu on the file list making it easy to replace the filter by the filename. Another minor improvement when filtering on files would be to fold the diffs in a revision for the files that are not selected ticket #8468: Removing a file should display a simple message ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.500 :state: validation pending Removing a file should display a simple message as implemented for renaming a file, instead of displaying all the removed content Comments :: On 2009/03/23 11:48 - acampeas wrote : +1 for showing an appropriate message, but ... seeing the content of renamed or deleted stuff is always useful to me. Don't wipe it. ticket #8045: search behaviour ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 5.000 :state: validation pending The current search widgets & behaviour in the gtk app is quite unsatisfying. What it does now : * provide a Find field for content searches (a la grep), with a 'Find next' button (but no 'Find previous') ... * which also matches file names (unlike grep) * which does not visually mark the matching revs (you basically have to select a recent-enough rev and click on 'Find next' 'till it clicks for you) * provides a Files field for file name searches (a la find), with an 'Apply' button (no 'Find next/previous' ...) * which, when clicked, filters all visible revs, so that only the matching revs are shown, thus : * breaking the graph * hiding surrounding revs etc... It sucks. What should be is the following : * a 'Find in content' (or 'grep' ? for unixophiles) field * a 'Find in file names' (or 'find' ? for the same) field * a couple of Find next/Find prev buttons (one couple for both fields) * when any criterion matches, all the matching revs are marked with some visual clue (a yellow dot near the id, something not too intrusive and easy to spot) * both fields are ANDed * revs are NEVER hidden, and the graph is ALWAYS shown and clean ticket #7659: "searching" widget when doing a search ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.500 :state: validation pending When doing a search on a big repository, it is not always apparent that hgview is doing something. If you move the mouse around then you can see that it is doing something (the cursor turns to "busy"), but since the cursor doesn't show because you are on the textarea there should be another indicator (like the loading tab in firefox?) ticket #3430: manage group of users ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 1.000 :state: validation pending It would be nice to be able to create groups of users and assign a specific color to each of them I see 3 immediate uses : - for small projects : handles nicely authors commiting from several accounts with different identity - for large groups (eg linux kernel) identifies authors working on the same subset of a project - allow stability of color assignment when more developpers come into a project ticket #3428: Save options in ~/.hgviewrc ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 1.000 :state: validation pending All options should go in a config file, either global or per repo. Intended options/parameters : - position of panes, windows - user groups (see #??) ticket #7663: Navigate on searched words ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 1.000 :state: validation pending The "find next" goes from a diff to the next. It doesn't navigate inside the diff (for multiple occurences of the found word). It would be usefull to have buttons to navigate inside the diff. Meld_ has that kind of navigation and can be checked out for inspiration. .. _meld : http://meld.sourceforge.net version 1.1.0 ------------- :publication date: 2009/09/25 :expected date: n/a ticket #9979: broken layout in case of rename of long filepath ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.500 :state: validation pending explanation : adds, deletes and renames are shown in an intermediate zone betwen revision info and diff the width of the whole column seems to be constrained by this line's width in case of long_name (renamed from other_long_name) it's a problem (the File column may become out of reach) ticket #9320: display file mode bits changes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.250 :state: validation pending Reproduction steps:: sfllaw@belgium:~$ mkdir foo sfllaw@belgium:~$ cd foo sfllaw@belgium:~/foo$ hg init sfllaw@belgium:~/foo$ touch me sfllaw@belgium:~/foo$ hg add me sfllaw@belgium:~/foo$ hg ci -m 'Added me' sfllaw@belgium:~/foo$ chmod +x me sfllaw@belgium:~/foo$ hg ci -m 'me is runnable' sfllaw@belgium:~/foo$ hgview Expected results: Both changesets indicate that an empty file has been changed, somehow. This is what hgk does. Actual results: It looks like no changes have been made. ticket #9309: filelog do not follow file renames "upward" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.250 :state: validation pending filelog views can "follow" file renames, but only for renames that are prior to the revision used as starting revision. ticket #9342: author column missing from main window ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.100 :state: validation pending that's a very useful information Comments :: On 2009/06/19 10:27 - acampeas wrote : actually it's not missing, it's zero-width the bug is more about the way columns determine their size ticket #7661: Display the number of results for a word in a diff ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.500 :state: validation pending When doing a search, if there are multiple results of the found word in the diff display somewhere the number of occurences of that word. ticket #9307: add a 'filename' column in filelog views ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.200 :state: validation pending filelog views (diff mode or plain mode) can 'follow' files when they are renamed, but there is no way to what is the filename for a given revision. ticket #13949: have an interactive help invokable with F1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.200 :state: validation pending Comments :: On 2009/09/21 10:27 - ddouard wrote : Let's begin with "have an help window invokable with F1 or a help toolbutton". version 1.1.1 ------------- bugfix release :publication date: 2009/09/25 :expected date: n/a ticket #18214: fix name of toolbars ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.100 :state: resolved the toolbars have default ugly names when you right click. version 1.1.2 ------------- packaging fixes :publication date: 2009/10/08 :expected date: n/a ticket #18301: debian packaging needs more work ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 1.000 :state: validation pending version 1.1.3 ------------- :publication date: 2009/10/08 :expected date: n/a ticket #18583: include all .ui files in source tarball ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.250 :state: validation pending This will prevent crash when using the Help button from a Debian installed version. version 1.2.0 ------------- :publication date: 2010/01/21 :expected date: n/a ticket #9524: problem for changing the size of columns ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.000 :state: rejected When trying to change the size of some column (for instance the "Log" column), it seems that hgview readjust the width of all columns to the current window size so that the "Log" column size stays fix. However, I want to *change* it. By the way, the "Tip" column is very large, but almost always empty; also we rarely need the full "Author" column size. Instead it would be nice to have as much as possible visibility on the "Log" column. Comments :: On 2009/09/28 11:06 - ddouard wrote : Several comments: - Please fill different tickets for different bugs/feature requests ("By the way..." : the auto-sized Log column is not the same pb as the default size of some other columns, even if they are related.) - The reported bug is in fact a feature :-) One may not like this behaviour, but it has been designed like this. - For the "Author" column, please read the documentation about the possibility to create aliases for user names (filling the ``.hgusers`` file) - For the "tip column" (in fact the "tag" column), it is auto-sized, thus having very long tags will result in having a very wide column. And I agree this is a annoying behaviour. Once again, this is another story. ticket #19142: Segfault on some platforms ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.200 :state: resolved hgview segfault on recent debian/ubuntu systems ticket #19504: Ubuntu Jaunty packaging ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.500 :state: resolved I faced two problems regarding hgview installation on jaunty: - there was a missing dependency to pyqt4-dev-tools - qt4/hgqv_rc.py and qt4/icons are not present in the package ; once copied from the hg version to /var/lib/python-support/python2.6/hgviewlib/qt4, it just worked ticket #18825: Not working on Karmic ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.500 :state: resolved This is what I get :: $ hgview sh: pyrcc4: not found ERROR: Cannot convert the resource file '%s' into a python module. Please check the PyQt 'pyrcc4' tool is installed, or do it by hand running: pyrcc4 /usr/lib/pymodules/python2.6/hgviewlib/qt4/hgqv.qrc -o /usr/lib/pymodules/python2.6/hgviewlib/qt4/hgqv_rc.py Traceback (most recent call last): File "/usr/bin/hgview", line 24, in from hgviewlib.qt4.hgrepoviewer import main File "/usr/lib/pymodules/python2.6/hgviewlib/qt4/__init__.py", line 43, in import hgqv_rc ImportError: No module named hgqv_rc Comments :: On 2009/11/03 09:59 - alutz wrote : sorry, forgot to mention : I installed it from the Jaunty repo. On 2009/11/28 05:43 - anon wrote : Is there a workaround for now? > On 2010/01/09 09:42 - fcayre wrote : > Just installed it on Karmic from hg repo and it works like a charm. You need > to install dependency packages as described in project home page when you run > from sources. For package installation, see "see also" mention on the present > ticket (link to #19504) for instructions. ticket #18885: hgview -n file crashes at startup ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.100 :state: resolved :: hgview -n unittest_profile.py *** failed to import extension hgext.inotify: 'module' object has no attribute 'inotify' Traceback (most recent call last): File "/usr/bin/hgview", line 26, in main() File "/var/lib/python-support/python2.5/hgviewlib/qt4/hgrepoviewer.py", line 483, in main if opt.get('navigate'): AttributeError: Values instance has no attribute 'get' ticket #18973: Do not "reset" TableView position when filling graph ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.500 :state: resolved The revision graph's QTableView is "reset" (model send a "LayoutChanged" signal) when filling. Thus current position is "lost". ticket #18887: be able to use a relative path when browsing in single file mode ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.250 :state: resolved If I'm in a subdirectory of a repository and I run hgview -n relative_path_to_file nothing is displayed. I need to provide the path of the file relative to the root of the repository (an not relative to the cwd), which is annoying. ticket #19620: display only first line of message in the main view ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.200 :state: resolved When commiting with a message with several lines, Log column ignores the '\n' caracter and represents the message in one line. It should display only the first line of message. ticket #19397: wrong line numbers in "Annotate" view ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.500 :state: resolved The size of fonts for the lines and of the revision numbers are (not always?) the same, so at the bottom of the viewer, the revision number is not infront of the corresponding line anymore. ticket #18881: text within brackets is not displayed in the comment field ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.200 :state: resolved text within brackets is not displayed in the comment field:: my comment will only show "my comment" in the comment field, even though the right comment is shown in the commit list. ticket #9818: write more documentation, help and manpage ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.500 :state: resolved For now the "--help" and the manpage are quite thin and tell very little about how to use hgview and what it can do. Hence one has to guess for functionalities. For example, I could find no documentation of using '/' when searching for some string or double-clicking when looking for the revisions of a file. What else is possible? "#8533: push hgview into debian official repositories" with almost no manpage ? Comments :: On 2009/07/23 12:35 - eanclin wrote : Actually, you can see (some of?) the available options with "hg qv -h" and "hg hgview-options". They should be backported to hgview. ticket #19187: Add simple support for mq ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.500 :state: resolved Make mq chagesets be clearly identified as mq patches ticket #19189: Make dialogs communicate a bit ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.500 :state: resolved Make it possible, when having the main repo viewer and a filelog viewer opened to ask (from the filelog dialog) the main graphlog dialog to display the selected revision and vice-versa ticket #18972: identity file modifications in the revision graph ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.200 :state: resolved In main revision graph, mark working directory position with a different icon if there are modified files. ticket #18983: show revision number like hg annotate ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 1.000 :state: resolved The changeset viewer could show the revision number of the previous modification at the left of each line, like hg annotate. This would be a very convenient extension of "hg annotate" since "hg annotate" shows only the revision of the last commit. It is somewhat related to ticket #18961 . ticket #18976: Add support for hg-bfiles extension ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.200 :state: resolved ticket #18831: Improve search ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 0.500 :state: resolved Add the ability to search 1) in changeset info 2) a specific filename version 1.2.1 ------------- packaging bugfix release :publication date: 2010/08/25 :expected date: n/a ticket #38148: no icons in tarball ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: bug :load: 0.100 :state: validation pending the icons are missing in the tarball version 1.2.2 ------------- Bugfix release :expected date: n/a ticket #4972: work with forests ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 4.000 :state: open when started in a repository that's a forest, allow to view all the trees (adding a menu or another pane sounds like a good option). ticket #8170: Better colorization on merge nodes' diff ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :type: enhancement :load: 3.000 :state: open On a merge node, we should use a color scheme to identify the parent branch from which a line in the diff comes from. hgk boldifies lines coming from the "left" branch. Comments :: On 2009/09/22 10:13 - ddouard wrote : This is not an easy task, thus, let's first implement a workaround (and postpone this ticket). version 1.3.0 ------------- :expected date: n/a