Difference between revisions of "Mercurial history browsing"

From CDOT Wiki
Jump to: navigation, search
m (Project News)
(Project News)
Line 138: Line 138:
 
'''September 25th, 2008'''
 
'''September 25th, 2008'''
 
* [http://sidkalra.com/files/mercurial/chats/jorendorff/hgChat_jorendorff_sept25-08.txt Chatted with jorendorff] on setting my development environment
 
* [http://sidkalra.com/files/mercurial/chats/jorendorff/hgChat_jorendorff_sept25-08.txt Chatted with jorendorff] on setting my development environment
* Email conversation with jorendorff, asked some preliminary questions about the project and a hello world type of activity
+
* [http://sidkalra.com/files/mercurial/email/conversation_email_Sept25-08.txt Email conversation with jorendorff], asked some preliminary questions about the project and a hello world type of activity
 +
** [http://sidkalra.com/files/mercurial/email/conversation2_email_Sept25-08.txt jorendorff replied]
 +
*** [http://sidkalra.com/files/mercurial/email/conversation3_email_Sept25-08.txt I replied to jorendorff] concerning setting up my development environment
  
 
'''September 26th, 2008'''
 
'''September 26th, 2008'''
* Email conversation with jorendorff about setting up the development environment
+
* [http://sidkalra.com/files/mercurial/email/conversation_email_Sept26-08.txt Email conversation with jorendorff] about setting up the development environment
  
 
'''September 28th, 2008'''
 
'''September 28th, 2008'''
 
* Played around with hg. Details [http://blog.sidkalra.com/2008/09/playing-with-mercurial-styles/ here]
 
* Played around with hg. Details [http://blog.sidkalra.com/2008/09/playing-with-mercurial-styles/ here]
* Email conversation with jorendorff, asked for help on setting up the development environment and suggestions on a v0.1 release
+
* [http://sidkalra.com/files/mercurial/email/conversation_email_Sept28-08.txt Email conversation with jorendorff], asked for help on setting up the development environment and suggestions on a v0.1 release
* Email conversation with djc about hg_templates
 
  
 
'''September 29th, 2008'''
 
'''September 29th, 2008'''
* Email conversation with jorendorff about v0.1 release ideas
+
* [http://sidkalra.com/files/mercurial/email/conversation_email_Sept29-08.txt Email conversation with djc] about setting up hg_templates
 +
* [http://sidkalra.com/files/mercurial/email/conversation2_email_Sept29-08.txt Email conversation with jorendorff] about having the development environment completed and ready to use and picking what I will be working on for my v0.1 release ideas
  
 
'''October 1st, 2008'''
 
'''October 1st, 2008'''
 
* [http://sidkalra.com/files/mercurial/chats/ted/hgChat_ted_Oct1-2008.txt Chatted with ted] about getting a hold of the pushlog database
 
* [http://sidkalra.com/files/mercurial/chats/ted/hgChat_ted_Oct1-2008.txt Chatted with ted] about getting a hold of the pushlog database
* Email conversation with jorendorff about setting up pushloghtml on my development environment and some questions/concerns regarding pushloghtml
+
* [http://sidkalra.com/files/mercurial/email/conversation_email_Oct01-08.txt Email conversation with jorendorff] about setting up pushloghtml on my development environment and some questions/concerns regarding pushloghtml
  
 
'''October 2nd, 2008'''
 
'''October 2nd, 2008'''
 
* Development Environment almost setup and running except for pushloghtml
 
* Development Environment almost setup and running except for pushloghtml
 
* [http://blog.sidkalra.com/2008/10/deciding-on-v01-release/ Decided on v0.1 release] (tentative, still need to clear it with humph)
 
* [http://blog.sidkalra.com/2008/10/deciding-on-v01-release/ Decided on v0.1 release] (tentative, still need to clear it with humph)
* Email conversation with jorendorff clarifying some concerns about pushloghtml
+
* [http://sidkalra.com/files/mercurial/email/conversation_email_Oct02-08.txt Email conversation with jorendorff] clarifying some concerns about pushloghtml
* Email conversation with ted explaining how to setup pushloghtml
+
* [http://sidkalra.com/files/mercurial/email/conversation2_email_Oct02-08.txt Email conversation with ted] explaining how to setup pushloghtml, concerning the buglink.py file
  
 
'''October 3rd, 2008'''
 
'''October 3rd, 2008'''
 
* Decided on v0.1 release (confirmed with humph). Updated [http://blog.sidkalra.com/2008/10/deciding-on-v01-release/ v0.1 release blog post]
 
* Decided on v0.1 release (confirmed with humph). Updated [http://blog.sidkalra.com/2008/10/deciding-on-v01-release/ v0.1 release blog post]
* Email conversation asking about simplejson and pysqlite2 modules
+
* [http://sidkalra.com/files/mercurial/email/conversation_email_Oct03-08.txt Email conversation] asking about simplejson and pysqlite2 modules
* Email conversation with bsmedberg explaining simplejson and pysqlite2 questions
+
* [http://sidkalra.com/files/mercurial/email/conversation2_email_Oct03-08.txt Email conversation with bsmedberg] explaining simplejson and pysqlite2 questions
  
 
'''October 5th, 2008'''
 
'''October 5th, 2008'''
Line 171: Line 173:
 
'''October 6th, 2008'''
 
'''October 6th, 2008'''
 
* Multiple email conversations asking djc and bsmedberg about a "no module found" error relating to simplejson and pysqlite2
 
* Multiple email conversations asking djc and bsmedberg about a "no module found" error relating to simplejson and pysqlite2
 +
** [http://sidkalra.com/files/mercurial/email/conversation_email_Oct06-08.txt Conversation] with me asking why the error is happening
 +
** [http://sidkalra.com/files/mercurial/email/conversation2_email_Oct06-08.txt djc replies] asking whether I get a traceback
 +
** [http://sidkalra.com/files/mercurial/email/conversation3_email_Oct06-08.txt I reply] with the traceback output
 +
** [http://sidkalra.com/files/mercurial/email/conversation4_email_Oct06-08.txt bsmedberg replies] with possible causes
 +
** [http://sidkalra.com/files/mercurial/email/conversation5_email_Oct06-08.txt I replied] with various things that I have tried to get it to run properly
  
 
'''October 7th, 2008'''
 
'''October 7th, 2008'''
* Email conversation with djc, discussing ideas about the causes of the "no module found" error
+
* [http://sidkalra.com/files/mercurial/email/conversation_email_Oct07-08.txt Another email conversation with djc], discussing ideas about the causes of the "no module found" error
  
 
'''October 8th, 2008'''
 
'''October 8th, 2008'''
* Email conversation with djc asking questions about building Mercurial from source
+
* [http://sidkalra.com/files/mercurial/email/conversation_email_Oct08-08.txt Email conversation with djc] asking questions about building Mercurial from source. I was having some trouble with it
  
 
'''October 9th, 2008'''
 
'''October 9th, 2008'''
* Email conversation with djc discussing issues with building Mercurial from source
+
* [http://sidkalra.com/files/mercurial/email/conversation_email_Oct09-08.txt Email conversation with djc] discussing further issues with building Mercurial from source
 +
* [http://sidkalra.com/files/mercurial/email/conversation2_email_Oct09-08.txt Email to let jorendorff, djc, ted and bsmedberg] know that the chronic problems with Mercurial have been resolved
 
* [http://blog.sidkalra.com/2008/10/getting-pushloghtml-up-and-running-part-two/ Development environment setup]. Ready for coding to begin!
 
* [http://blog.sidkalra.com/2008/10/getting-pushloghtml-up-and-running-part-two/ Development environment setup]. Ready for coding to begin!
  
Line 196: Line 204:
  
 
'''October 16th, 2008'''
 
'''October 16th, 2008'''
* Email conversation with ted discussing some questions about implementing an AJAX scrolling feature to [https://bugzilla.mozilla.org/show_bug.cgi?id=459727 load more pushlog changesets]
+
* [http://sidkalra.com/files/mercurial/email/conversation_email_Oct16-08.txt Email conversation with ted] discussing some questions about implementing an AJAX scrolling feature to [https://bugzilla.mozilla.org/show_bug.cgi?id=459727 load more pushlog changesets]
 +
* [http://sidkalra.com/files/mercurial/email/conversation2_email_Oct16-08.txt ted replied] with possible solutions/steps I could take
  
 
'''October 17th, 2008'''
 
'''October 17th, 2008'''
Line 203: Line 212:
 
'''October 18th, 2008'''
 
'''October 18th, 2008'''
 
* Made a blog post regarding [https://bugzilla.mozilla.org/show_bug.cgi?id=459727 bug 459727] - [http://blog.sidkalra.com/2008/10/pushloghtml-should-show-more-than-10-entries-working-on-v01-release/ Pushloghtml Should Show More Than 10 Entries, Working on v0.1 Release]
 
* Made a blog post regarding [https://bugzilla.mozilla.org/show_bug.cgi?id=459727 bug 459727] - [http://blog.sidkalra.com/2008/10/pushloghtml-should-show-more-than-10-entries-working-on-v01-release/ Pushloghtml Should Show More Than 10 Entries, Working on v0.1 Release]
 +
* [http://sidkalra.com/files/mercurial/email/conversation_email_Oct18-08.txt Email conversation asking ted] about xmlHttpRequest and JSON questions
  
 
'''October 19th, 2008'''
 
'''October 19th, 2008'''
Line 208: Line 218:
  
 
'''October 23rd, 2008'''
 
'''October 23rd, 2008'''
* Email conversation with djc regarding [https://bugzilla.mozilla.org/show_bug.cgi?id=459727 bug 459727]
+
* [http://sidkalra.com/files/mercurial/email/conversation_email_Oct23-08.txt Email conversation with djc] regarding [https://bugzilla.mozilla.org/show_bug.cgi?id=459727 bug 459727]. In particular asking about the JSON script that returns turns the data from the server side, which is gotten via an xmlHttpRequest()
  
 
'''October 29th, 2008'''
 
'''October 29th, 2008'''
Line 224: Line 234:
 
'''November 4th, 2008'''
 
'''November 4th, 2008'''
 
* [http://sidkalra.com/files/mercurial/chats/jorendorff/hgChat_jorendorff&ted_nov04-08.txt Had a conversation] relating to v0.2 release with jorendorff (decided what I will include in v0.2)
 
* [http://sidkalra.com/files/mercurial/chats/jorendorff/hgChat_jorendorff&ted_nov04-08.txt Had a conversation] relating to v0.2 release with jorendorff (decided what I will include in v0.2)
 +
* [http://sidkalra.com/files/mercurial/email/conversation_email_Nov04-08.txt Email conversation with djc regarding bug 459727 (the OnScroll feature). Asked questions the data that the JSON script returns
 +
** [http://sidkalra.com/files/mercurial/email/conversation2_email_Nov04-08.txt djc replied] with possible solutions/methods to solving my problems
  
 
'''November 5th, 2008'''
 
'''November 5th, 2008'''
Line 281: Line 293:
 
* Posted new hg_templates patch for [https://bugzilla.mozilla.org/show_bug.cgi?id=445560 bug 445560]   
 
* Posted new hg_templates patch for [https://bugzilla.mozilla.org/show_bug.cgi?id=445560 bug 445560]   
 
** Made a [http://blog.sidkalra.com/2008/11/v03-release-fix-for-my-patch-for-bug-445560/ blog post] about the two new patches for [https://bugzilla.mozilla.org/show_bug.cgi?id=445560 bug 445560]
 
** Made a [http://blog.sidkalra.com/2008/11/v03-release-fix-for-my-patch-for-bug-445560/ blog post] about the two new patches for [https://bugzilla.mozilla.org/show_bug.cgi?id=445560 bug 445560]
 +
* [http://sidkalra.com/files/mercurial/email/conversation_email_Nov24-08.txt Emailed djc] asking questions about his graph view implementation
 +
 +
'''November 29th, 2008'''
 +
* [http://sidkalra.com/files/mercurial/email/conversation_email_Nov29-08.txt Email conversation with djc]. He replied to my earlier email asking about his graph view implementation
  
 
'''December 1st, 2008'''
 
'''December 1st, 2008'''

Revision as of 16:23, 5 December 2008

Project Name

Adding Functionality to the Browser Based UI for Mercurial History Browsing, hgweb

Project Description

Mozilla is just starting to use an exciting new distributed version control tool: Mercurial.

One of the exciting things about Mercurial is that the history—the list of all the changes that have ever been checked in—is not linear. It frequently has branches and merges. This is actually a good, important feature, as you know if you've read a little about distributed version control. The downside is that the history becomes a maze of twisty little passages. Benjamin Smedberg's demo shows the history of a repository with lots of merges (each box is a check-in; you can click on the boxes to move around).

There have been a couple attempts at showing history in an intuitive, graphical way. Mercurial comes with a web UI for browsing the repository, including history (here's what it looks like). It also comes with an "hg glog" extension that draws history as ASCII art, and an "hg view" extension that does roughly the same thing with a little GUI. Sadly, none of these applications qualifies as awesome.

The project's goal is to rectify this sad situation by writing an awesome browser-based UI for navigating Mercurial repository history.

Resources: jorendorff, bsmedberg

Project Leader(s)

Siddharth Kalra

Project Contributor(s)

  • Tiago Moreira

Project Mentors

  • Jason Ordendorff (jorendorff)
  • Dirkjan Ochtman (djc)
  • Ted Mielczarek (ted)
  • Benjamin Smedberg (bsmedberg)

Project Details

September 23rd, 2008

v0.1 Release Details

  • to get pushloghtml working on my machine (some progress made on this part)
  • to locate the source files that dictate the amount of pushlog entries that get displayed and then alter it to display more entries
    • Turns out that there was some miscommunication and I need to add an AJAX scrolling feature that dynamically loads more changesets
  • to add code that allows expand/collapse functionality (apparently all I need is a js lib according to humph)
    • Turns out that there was another miscommunication as Ted has already added this feature. Look here. However the patch has some problems that will need to be fixed. I might fix this for my 0.2 release (undecided for now)
  • To release v0.1 on time

v0.2 Release Details (More Information) (Final result)

  • To continue work on bug 459727
    • Implement a loader GIF (View here)
    • Getting the correct Chronological order when adding more entries OnScroll (View here) (Final result)
    • Getting merge changesets to show up correctly when adding more entries OnScroll (View here) (final result)
      • Making sure the new entries that load OnScroll comply with bug 445560 (Expand/Collapse feature) ==> REMOVED from v0.2 - this functionality should wait until the expand/collapse functionality itself is approved and goes live. This should be a separate bug
    • To make buglinks work
    • To make changeset links work
    • To get the correct date formating
    • On first page load show 20 entries instead of 10 (View here)
    • To get the correct author names (right now, sometimes it returns the email address while other times the name of the author) (View solution here)
  • To fix ted's patch for bug 445560 (View here)
  • To implement "the which files were touched by a changeset" feature for bug 448707 (View here)

v0.3 Release Details (View here)

  • Problem with my patch for bug 445560 (View here)
    • Fixed problems with my patch by adding 2 new patches (View here)
      • Fix 1: Should use ids instead of dates
      • Fix 2: Should store unique identifiers in the class instead of the id of the tag
  • My patch for bug 448707 approved! (View here)
  • Implementing the Graph view for the pushlog
  • Problem with my patch for bug 459727 (View here) (fix for my patch)
    • To calculate the max use SELECT COUNT(*) FROM ... instead of asking for all the rows and then counting them
    • getMaxEntries called, then 'start' used once the user scrolls. But the user might scroll before the first result comes back, while start is still zero -- a race condition.
    • The JS code isn't consistently indented
    • Patch seems to contain some non-ASCII characters. Bugzilla doesn't render it properly. Consider using an HTML entity reference, like – or —, instead of an actual Unicode character.
    • In a few places the b tag is used where the server uses the strong tag; be consistent
    • Loads more results when the user scrolls. What if the initial results don't fill up the window?
    • Better to move CSS and formatting to stylesheets where possible
  • Problem #1 explained in comment #9 by jorendorff still existed with my new patch (it is fixed, view here)
  • Improved the bug link feature for bug 459727 (View here)
  • My patch for bug 445560 approved (View here)

Project News

September 18th, 2008

  • Picked the Mercurial History Browsing project

September 23rd, 2008

September 25th, 2008

September 26th, 2008

September 28th, 2008

September 29th, 2008

October 1st, 2008

October 2nd, 2008

October 3rd, 2008

October 5th, 2008

  • Problems with getting pushloghtml to work here. Work in progress...

October 6th, 2008

  • Multiple email conversations asking djc and bsmedberg about a "no module found" error relating to simplejson and pysqlite2

October 7th, 2008

October 8th, 2008

October 9th, 2008

October 13th, 2008

October 14th, 2008

October 16th, 2008

October 17th, 2008

  • Email conversation asking questions about the json-pushes script

October 18th, 2008

October 19th, 2008

October 23rd, 2008

October 29th, 2008

November 3rd, 2008

November 4th, 2008

November 5th, 2008

November 6th, 2008

November 7th, 2008

  • Made a blog post discussing the details for v0.2 release
  • Made a blog post about a problem with implementing merge changesets for bug 459727

November 8th, 2008

November 10th, 2008

November 11th, 2008

November 12th, 2008

  • Had a discussion with ted and bsmedberg about the issue explained by the blog post here
  • Edited the blog post about not getting the right author name. The edit provides a solution to the problem
  • Edited the blog post detailing my problem with ctx.parents()[i].description()
  • Chatted with ted about a problem with not getting the correct author name. Sometimes the email was being shown while other times the actual name was showing up

November 13th, 2008

November 15th, 2008

November 16th, 2008

November 19th, 2008

November 24th, 2008

November 29th, 2008

December 1st, 2008

  • Had a discussion with jorendorff on the Graph view
  • Made celebratory blog post about my patch for bug 448707 being accepted
  • Made a blog post about understanding how graph data is passed from the server side to the client side

December 2nd, 2008

  • Made a blog post about completing the 1st iteration for the graph (View here)
  • Made a blog post about problems identified by jorendorff concerning my patch for bug 459727

December 3rd, 2008

  • Added a new patch for hgpoller for bug 459727
  • Added a new patch for hg_templates for bug 459727
  • Blogged about the above patches here
  • Made a blog post explaining a fix concerning a problem with my newly submitted patch (see above) for bug 459727. Problem #1 explained in comment #9 by jorendorff still existed even with my new patch

December 4th, 2008

December 5th, 2008

  • Had a chat with jorendorff and ted
    • Talked about who should be the reviewer for bug
    • Talked about continuing on and working on this project next semester
    • Final discussion for the project for this semester
  • Made a blog post about another patch of mine getting approved for bug 445560

External Links

Other