Commits

code4pay committed 7ff7b5c

updated the version number so it would work with Padre .72, tarred up the test hg dir so it could be commited

  • Participants
  • Parent commits 692203a

Comments (0)

Files changed (16)

         First version, released on an unsuspecting world.
 0.10    2009/11/03:1402
         First release to CPAN,  Added more commands and improved the diffing to be usable. 
-
+0.15	2010/11/03:17:36 Update the Compatability Version to work with the latest Padre.
+0.16    2010/11/07:20:38 increase Version Number to skip failed upload to cpan
 Changes
-MANIFEST
-Makefile.PL
-README
+ignore.txt
 lib/Padre/Plugin/HG.pm
+lib/Padre/Plugin/HG/DiffView.pm
+lib/Padre/Plugin/HG/LogView.pm
 lib/Padre/Plugin/HG/ProjectClone.pm
 lib/Padre/Plugin/HG/ProjectCommit.pm
 lib/Padre/Plugin/HG/StatusTree.pm
+lib/Padre/Plugin/HG/t/HG.t
 lib/Padre/Plugin/HG/UserPassPrompt.pm
-lib/Padre/Plugin/HG/DiffView.pm
-lib/Padre/Plugin/HG/LogView.pm
+Makefile.PL
+MANIFEST
+Padre-Plugin-HG-0.01.tar.gz
+Padre-Plugin-HG-0.15.tar.gz
+README
 t/00-load.t
 t/HG.t
+t/hg_test_dir/.directory
+t/hg_test_dir/.hg/00changelog.i
+t/hg_test_dir/.hg/branchheads.cache
+t/hg_test_dir/.hg/dirstate
+t/hg_test_dir/.hg/requires
+t/hg_test_dir/.hg/store/00changelog.i
+t/hg_test_dir/.hg/store/00manifest.i
+t/hg_test_dir/.hg/store/data/dir1/test.txt.i
+t/hg_test_dir/.hg/store/data/dir2/text1.txt.i
+t/hg_test_dir/.hg/store/data/dir2/text2.txt.i
+t/hg_test_dir/.hg/store/data/parse_status.pm.i
+t/hg_test_dir/.hg/store/data/test.pl.i
+t/hg_test_dir/.hg/store/fncache
+t/hg_test_dir/.hg/store/undo
+t/hg_test_dir/.hg/undo.branch
+t/hg_test_dir/.hg/undo.dirstate
+t/hg_test_dir/dir1/test.txt
+t/hg_test_dir/dir2/text1.txt
+t/hg_test_dir/dir2/text2.txt
+t/hg_test_dir/parseStatus.pm
+t/hg_test_dir/README
+t/hg_test_dir/status.txt
+t/hg_test_dir/t/padreUtil.t
+t/hg_test_dir/t/parseStatus.t
+t/hg_test_dir/test.pl
+t/hg_test_dir/test1.txt
 t/pod.t
+Changes
+ignore.txt
+lib/Padre/Plugin/HG.pm
+lib/Padre/Plugin/HG/DiffView.pm
+lib/Padre/Plugin/HG/LogView.pm
+lib/Padre/Plugin/HG/ProjectClone.pm
+lib/Padre/Plugin/HG/ProjectCommit.pm
+lib/Padre/Plugin/HG/StatusTree.pm
+lib/Padre/Plugin/HG/t/HG.t
+lib/Padre/Plugin/HG/UserPassPrompt.pm
+Makefile.PL
+MANIFEST
+Padre-Plugin-HG-0.01.tar.gz
+Padre-Plugin-HG-0.15.tar.gz
+README
+t/00-load.t
+t/HG.t
+t/hg_test_dir/.directory
+t/hg_test_dir/.hg/00changelog.i
+t/hg_test_dir/.hg/branchheads.cache
+t/hg_test_dir/.hg/dirstate
+t/hg_test_dir/.hg/requires
+t/hg_test_dir/.hg/store/00changelog.i
+t/hg_test_dir/.hg/store/00manifest.i
+t/hg_test_dir/.hg/store/data/dir1/test.txt.i
+t/hg_test_dir/.hg/store/data/dir2/text1.txt.i
+t/hg_test_dir/.hg/store/data/dir2/text2.txt.i
+t/hg_test_dir/.hg/store/data/parse_status.pm.i
+t/hg_test_dir/.hg/store/data/test.pl.i
+t/hg_test_dir/.hg/store/fncache
+t/hg_test_dir/.hg/store/undo
+t/hg_test_dir/.hg/undo.branch
+t/hg_test_dir/.hg/undo.dirstate
+t/hg_test_dir/dir1/test.txt
+t/hg_test_dir/dir2/text1.txt
+t/hg_test_dir/dir2/text2.txt
+t/hg_test_dir/parseStatus.pm
+t/hg_test_dir/README
+t/hg_test_dir/status.txt
+t/hg_test_dir/t/padreUtil.t
+t/hg_test_dir/t/parseStatus.t
+t/hg_test_dir/test.pl
+t/hg_test_dir/test1.txt
+t/pod.t
 # This Makefile is for the Padre::Plugin::HG extension to perl.
 #
 # It was generated automatically by MakeMaker version
-# 6.52 (Revision: 65199) from the contents of
+# 6.55_02 (Revision: 65502) from the contents of
 # Makefile.PL. Don't edit this file, edit Makefile.PL instead.
 #
 #       ANY CHANGES MADE HERE WILL BE LOST!
 #
 #   MakeMaker ARGV: ()
 #
+
 #   MakeMaker Parameters:
 
 #     ABSTRACT_FROM => q[lib/Padre/Plugin/HG.pm]
 #     AUTHOR => q[Michael Mueller <michael@muellers.net.au>]
+#     BUILD_REQUIRES => {  }
 #     LICENSE => q[perl]
 #     NAME => q[Padre::Plugin::HG]
 #     PL_FILES => {  }
 EXE_EXT = 
 FULL_AR = /usr/bin/ar
 LD = cc
-LDDLFLAGS = -shared -O2 -g -L/usr/local/lib
-LDFLAGS =  -L/usr/local/lib
-LIBC = /lib/libc-2.9.so
+LDDLFLAGS = -shared -O2 -g -L/usr/local/lib -fstack-protector
+LDFLAGS =  -fstack-protector -L/usr/local/lib
+LIBC = /lib/libc-2.12.so
 LIB_EXT = .a
 OBJ_EXT = .o
 OSNAME = linux
-OSVERS = 2.6.24-23-server
+OSVERS = 2.6.24-27-server
 RANLIB = :
-SITELIBEXP = /usr/local/share/perl/5.10.0
-SITEARCHEXP = /usr/local/lib/perl/5.10.0
+SITELIBEXP = /usr/local/share/perl/5.10.1
+SITEARCHEXP = /usr/local/lib/perl/5.10.1
 SO = so
 VENDORARCHEXP = /usr/lib/perl5
 VENDORLIBEXP = /usr/share/perl5
 DFSEP = $(DIRFILESEP)
 NAME = Padre::Plugin::HG
 NAME_SYM = Padre_Plugin_HG
-VERSION = 0.01
+VERSION = 0.16
 VERSION_MACRO = VERSION
-VERSION_SYM = 0_01
+VERSION_SYM = 0_16
 DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\"
-XS_VERSION = 0.01
+XS_VERSION = 0.16
 XS_VERSION_MACRO = XS_VERSION
 XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\"
 INST_ARCHLIB = blib/arch
 MAN3EXT = 3pm
 INSTALLDIRS = site
 DESTDIR = 
-PREFIX = $(SITEPREFIX)
-PERLPREFIX = /usr
-SITEPREFIX = /usr/local
-VENDORPREFIX = /usr
-INSTALLPRIVLIB = /usr/share/perl/5.10
+PREFIX = /usr
+PERLPREFIX = $(PREFIX)
+SITEPREFIX = $(PREFIX)/local
+VENDORPREFIX = $(PREFIX)
+INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.10
 DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
-INSTALLSITELIB = /usr/local/share/perl/5.10.0
+INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.10.1
 DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
-INSTALLVENDORLIB = /usr/share/perl5
+INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5
 DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
-INSTALLARCHLIB = /usr/lib/perl/5.10
+INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.10
 DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
-INSTALLSITEARCH = /usr/local/lib/perl/5.10.0
+INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.10.1
 DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
-INSTALLVENDORARCH = /usr/lib/perl5
+INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5
 DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
-INSTALLBIN = /usr/bin
+INSTALLBIN = $(PERLPREFIX)/bin
 DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN)
-INSTALLSITEBIN = /usr/local/bin
+INSTALLSITEBIN = $(SITEPREFIX)/bin
 DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN)
-INSTALLVENDORBIN = /usr/bin
+INSTALLVENDORBIN = $(VENDORPREFIX)/bin
 DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN)
-INSTALLSCRIPT = /usr/bin
+INSTALLSCRIPT = $(PERLPREFIX)/bin
 DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT)
-INSTALLSITESCRIPT = /usr/local/bin
+INSTALLSITESCRIPT = $(SITEPREFIX)/bin
 DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT)
-INSTALLVENDORSCRIPT = /usr/bin
+INSTALLVENDORSCRIPT = $(VENDORPREFIX)/bin
 DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT)
-INSTALLMAN1DIR = /usr/share/man/man1
+INSTALLMAN1DIR = $(PERLPREFIX)/share/man/man1
 DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR)
-INSTALLSITEMAN1DIR = /usr/local/man/man1
+INSTALLSITEMAN1DIR = $(SITEPREFIX)/man/man1
 DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR)
-INSTALLVENDORMAN1DIR = /usr/share/man/man1
+INSTALLVENDORMAN1DIR = $(VENDORPREFIX)/share/man/man1
 DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR)
-INSTALLMAN3DIR = /usr/share/man/man3
+INSTALLMAN3DIR = $(PERLPREFIX)/share/man/man3
 DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR)
-INSTALLSITEMAN3DIR = /usr/local/man/man3
+INSTALLSITEMAN3DIR = $(SITEPREFIX)/man/man3
 DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
-INSTALLVENDORMAN3DIR = /usr/share/man/man3
+INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3
 DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
 PERL_LIB = /usr/share/perl/5.10
 PERL_ARCHLIB = /usr/lib/perl/5.10
 PERM_RW = 644
 PERM_RWX = 755
 
-MAKEMAKER   = /usr/local/share/perl/5.10.0/ExtUtils/MakeMaker.pm
-MM_VERSION  = 6.52
-MM_REVISION = 65199
+MAKEMAKER   = /usr/share/perl/5.10/ExtUtils/MakeMaker.pm
+MM_VERSION  = 6.55_02
+MM_REVISION = 65502
 
 # FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
 # BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
 H_FILES  = 
 MAN1PODS = 
 MAN3PODS = lib/Padre/Plugin/HG.pm \
+	lib/Padre/Plugin/HG/LogView.pm \
 	lib/Padre/Plugin/HG/ProjectClone.pm \
 	lib/Padre/Plugin/HG/StatusTree.pm \
 	lib/Padre/Plugin/HG/UserPassPrompt.pm
 
 
 TO_INST_PM = lib/Padre/Plugin/HG.pm \
+	lib/Padre/Plugin/HG/DiffView.pm \
+	lib/Padre/Plugin/HG/LogView.pm \
 	lib/Padre/Plugin/HG/ProjectClone.pm \
 	lib/Padre/Plugin/HG/ProjectCommit.pm \
 	lib/Padre/Plugin/HG/StatusTree.pm \
 	lib/Padre/Plugin/HG/UserPassPrompt.pm \
 	lib/Padre/Plugin/HG/t/HG.t
 
-PM_TO_BLIB = lib/Padre/Plugin/HG/ProjectCommit.pm \
+PM_TO_BLIB = lib/Padre/Plugin/HG/LogView.pm \
+	blib/lib/Padre/Plugin/HG/LogView.pm \
+	lib/Padre/Plugin/HG/ProjectCommit.pm \
 	blib/lib/Padre/Plugin/HG/ProjectCommit.pm \
 	lib/Padre/Plugin/HG.pm \
 	blib/lib/Padre/Plugin/HG.pm \
 	lib/Padre/Plugin/HG/t/HG.t \
 	blib/lib/Padre/Plugin/HG/t/HG.t \
+	lib/Padre/Plugin/HG/StatusTree.pm \
+	blib/lib/Padre/Plugin/HG/StatusTree.pm \
+	lib/Padre/Plugin/HG/DiffView.pm \
+	blib/lib/Padre/Plugin/HG/DiffView.pm \
 	lib/Padre/Plugin/HG/ProjectClone.pm \
 	blib/lib/Padre/Plugin/HG/ProjectClone.pm \
 	lib/Padre/Plugin/HG/UserPassPrompt.pm \
-	blib/lib/Padre/Plugin/HG/UserPassPrompt.pm \
-	lib/Padre/Plugin/HG/StatusTree.pm \
-	blib/lib/Padre/Plugin/HG/StatusTree.pm
+	blib/lib/Padre/Plugin/HG/UserPassPrompt.pm
 
 
 # --- MakeMaker platform_constants section:
-MM_Unix_VERSION = 6.52
+MM_Unix_VERSION = 6.55_02
 PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc
 
 
 DIST_CP = best
 DIST_DEFAULT = tardist
 DISTNAME = Padre-Plugin-HG
-DISTVNAME = Padre-Plugin-HG-0.01
+DISTVNAME = Padre-Plugin-HG-0.16
 
 
 # --- MakeMaker macro section:
 
 
 manifypods : pure_all  \
+	lib/Padre/Plugin/HG/LogView.pm \
 	lib/Padre/Plugin/HG.pm \
 	lib/Padre/Plugin/HG/ProjectClone.pm \
 	lib/Padre/Plugin/HG/UserPassPrompt.pm \
 	lib/Padre/Plugin/HG/StatusTree.pm
-	$(NOECHO) $(POD2MAN) --section=3 --perm_rw=$(PERM_RW) \
+	$(NOECHO) $(POD2MAN) --section=$(MAN3EXT) --perm_rw=$(PERM_RW) \
+	  lib/Padre/Plugin/HG/LogView.pm $(INST_MAN3DIR)/Padre::Plugin::HG::LogView.$(MAN3EXT) \
 	  lib/Padre/Plugin/HG.pm $(INST_MAN3DIR)/Padre::Plugin::HG.$(MAN3EXT) \
 	  lib/Padre/Plugin/HG/ProjectClone.pm $(INST_MAN3DIR)/Padre::Plugin::HG::ProjectClone.$(MAN3EXT) \
 	  lib/Padre/Plugin/HG/UserPassPrompt.pm $(INST_MAN3DIR)/Padre::Plugin::HG::UserPassPrompt.$(MAN3EXT) \
 	$(NOECHO) $(ECHO) Generating META.yml
 	$(NOECHO) $(ECHO) '--- #YAML:1.0' > META_new.yml
 	$(NOECHO) $(ECHO) 'name:               Padre-Plugin-HG' >> META_new.yml
-	$(NOECHO) $(ECHO) 'version:            0.01' >> META_new.yml
+	$(NOECHO) $(ECHO) 'version:            0.16' >> META_new.yml
 	$(NOECHO) $(ECHO) 'abstract:           Mecurial interface for Padre' >> META_new.yml
 	$(NOECHO) $(ECHO) 'author:' >> META_new.yml
 	$(NOECHO) $(ECHO) '    - Michael Mueller <michael@muellers.net.au>' >> META_new.yml
 	$(NOECHO) $(ECHO) '    directory:' >> META_new.yml
 	$(NOECHO) $(ECHO) '        - t' >> META_new.yml
 	$(NOECHO) $(ECHO) '        - inc' >> META_new.yml
-	$(NOECHO) $(ECHO) 'generated_by:       ExtUtils::MakeMaker version 6.52' >> META_new.yml
+	$(NOECHO) $(ECHO) 'generated_by:       ExtUtils::MakeMaker version 6.55_02' >> META_new.yml
 	$(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml
 	$(NOECHO) $(ECHO) '    url:      http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml
 	$(NOECHO) $(ECHO) '    version:  1.4' >> META_new.yml
 	$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
 
 pure_perl_install :: all
-	$(NOECHO) $(MOD_INSTALL) \
-		read $(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist \
-		write $(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist \
+	$(NOECHO) umask 022; $(MOD_INSTALL) \
 		$(INST_LIB) $(DESTINSTALLPRIVLIB) \
 		$(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \
 		$(INST_BIN) $(DESTINSTALLBIN) \
 
 
 pure_site_install :: all
-	$(NOECHO) $(MOD_INSTALL) \
+	$(NOECHO) umask 02; $(MOD_INSTALL) \
 		read $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist \
 		write $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist \
 		$(INST_LIB) $(DESTINSTALLSITELIB) \
 		$(PERL_ARCHLIB)/auto/$(FULLEXT)
 
 pure_vendor_install :: all
-	$(NOECHO) $(MOD_INSTALL) \
-		read $(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist \
-		write $(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist \
+	$(NOECHO) umask 022; $(MOD_INSTALL) \
 		$(INST_LIB) $(DESTINSTALLVENDORLIB) \
 		$(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \
 		$(INST_BIN) $(DESTINSTALLVENDORBIN) \
 		$(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)
 
 doc_perl_install :: all
-	$(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
-	-$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
-	-$(NOECHO) $(DOC_INSTALL) \
-		"Module" "$(NAME)" \
-		"installed into" "$(INSTALLPRIVLIB)" \
-		LINKTYPE "$(LINKTYPE)" \
-		VERSION "$(VERSION)" \
-		EXE_FILES "$(EXE_FILES)" \
-		>> $(DESTINSTALLARCHLIB)/perllocal.pod
 
 doc_site_install :: all
-	$(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
-	-$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
-	-$(NOECHO) $(DOC_INSTALL) \
+	$(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLSITEARCH)/perllocal.pod
+	-$(NOECHO) umask 02; $(MKPATH) $(DESTINSTALLSITEARCH)
+	-$(NOECHO) umask 02; $(DOC_INSTALL) \
 		"Module" "$(NAME)" \
 		"installed into" "$(INSTALLSITELIB)" \
 		LINKTYPE "$(LINKTYPE)" \
 		VERSION "$(VERSION)" \
 		EXE_FILES "$(EXE_FILES)" \
-		>> $(DESTINSTALLARCHLIB)/perllocal.pod
+		>> $(DESTINSTALLSITEARCH)/perllocal.pod
 
 doc_vendor_install :: all
-	$(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
-	-$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
-	-$(NOECHO) $(DOC_INSTALL) \
-		"Module" "$(NAME)" \
-		"installed into" "$(INSTALLVENDORLIB)" \
-		LINKTYPE "$(LINKTYPE)" \
-		VERSION "$(VERSION)" \
-		EXE_FILES "$(EXE_FILES)" \
-		>> $(DESTINSTALLARCHLIB)/perllocal.pod
 
 
 uninstall :: uninstall_from_$(INSTALLDIRS)dirs
 	$(NOECHO) $(NOOP)
 
 uninstall_from_perldirs ::
-	$(NOECHO) $(UNINSTALL) $(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist
 
 uninstall_from_sitedirs ::
 	$(NOECHO) $(UNINSTALL) $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist
 
 uninstall_from_vendordirs ::
-	$(NOECHO) $(UNINSTALL) $(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist
+
 
 
 # --- MakeMaker force section:
 # --- MakeMaker ppd section:
 # Creates a PPD (Perl Package Description) for a binary distribution.
 ppd :
-	$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="0.01">' > $(DISTNAME).ppd
+	$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="0.16">' > $(DISTNAME).ppd
 	$(NOECHO) $(ECHO) '    <ABSTRACT>Mecurial interface for Padre</ABSTRACT>' >> $(DISTNAME).ppd
 	$(NOECHO) $(ECHO) '    <AUTHOR>Michael Mueller &lt;michael@muellers.net.au&gt;</AUTHOR>' >> $(DISTNAME).ppd
 	$(NOECHO) $(ECHO) '    <IMPLEMENTATION>' >> $(DISTNAME).ppd
 	$(NOECHO) $(ECHO) '        <REQUIRE NAME="Test::More" />' >> $(DISTNAME).ppd
-	$(NOECHO) $(ECHO) '        <ARCHITECTURE NAME="i486-linux-gnu-thread-multi-5.10" />' >> $(DISTNAME).ppd
+	$(NOECHO) $(ECHO) '        <ARCHITECTURE NAME="i686-linux-gnu-thread-multi-5.10" />' >> $(DISTNAME).ppd
 	$(NOECHO) $(ECHO) '        <CODEBASE HREF="" />' >> $(DISTNAME).ppd
 	$(NOECHO) $(ECHO) '    </IMPLEMENTATION>' >> $(DISTNAME).ppd
 	$(NOECHO) $(ECHO) '</SOFTPKG>' >> $(DISTNAME).ppd
 
 # --- MakeMaker pm_to_blib section:
 
-pm_to_blib : $(TO_INST_PM)
+pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM)
 	$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \
+	  lib/Padre/Plugin/HG/LogView.pm blib/lib/Padre/Plugin/HG/LogView.pm \
 	  lib/Padre/Plugin/HG/ProjectCommit.pm blib/lib/Padre/Plugin/HG/ProjectCommit.pm \
 	  lib/Padre/Plugin/HG.pm blib/lib/Padre/Plugin/HG.pm \
 	  lib/Padre/Plugin/HG/t/HG.t blib/lib/Padre/Plugin/HG/t/HG.t \
+	  lib/Padre/Plugin/HG/StatusTree.pm blib/lib/Padre/Plugin/HG/StatusTree.pm \
+	  lib/Padre/Plugin/HG/DiffView.pm blib/lib/Padre/Plugin/HG/DiffView.pm \
 	  lib/Padre/Plugin/HG/ProjectClone.pm blib/lib/Padre/Plugin/HG/ProjectClone.pm \
-	  lib/Padre/Plugin/HG/UserPassPrompt.pm blib/lib/Padre/Plugin/HG/UserPassPrompt.pm \
-	  lib/Padre/Plugin/HG/StatusTree.pm blib/lib/Padre/Plugin/HG/StatusTree.pm 
+	  lib/Padre/Plugin/HG/UserPassPrompt.pm blib/lib/Padre/Plugin/HG/UserPassPrompt.pm 
 	$(NOECHO) $(TOUCH) pm_to_blib
 
 
+# This Makefile is for the Padre::Plugin::HG extension to perl.
+#
+# It was generated automatically by MakeMaker version
+# 6.55_02 (Revision: 65502) from the contents of
+# Makefile.PL. Don't edit this file, edit Makefile.PL instead.
+#
+#       ANY CHANGES MADE HERE WILL BE LOST!
+#
+#   MakeMaker ARGV: ()
+#
+
+#   MakeMaker Parameters:
+
+#     ABSTRACT_FROM => q[lib/Padre/Plugin/HG.pm]
+#     AUTHOR => q[Michael Mueller <michael@muellers.net.au>]
+#     BUILD_REQUIRES => {  }
+#     LICENSE => q[perl]
+#     NAME => q[Padre::Plugin::HG]
+#     PL_FILES => {  }
+#     PREREQ_PM => { Test::More=>q[0] }
+#     VERSION_FROM => q[lib/Padre/Plugin/HG.pm]
+#     clean => { FILES=>q[Padre-Plugin-HG-*] }
+#     dist => { COMPRESS=>q[gzip -9f], SUFFIX=>q[gz] }
+
+# --- MakeMaker post_initialize section:
+
+
+# --- MakeMaker const_config section:
+
+# These definitions are from config.sh (via /usr/lib/perl/5.10/Config.pm).
+# They may have been overridden via Makefile.PL or on the command line.
+AR = ar
+CC = cc
+CCCDLFLAGS = -fPIC
+CCDLFLAGS = -Wl,-E
+DLEXT = so
+DLSRC = dl_dlopen.xs
+EXE_EXT = 
+FULL_AR = /usr/bin/ar
+LD = cc
+LDDLFLAGS = -shared -O2 -g -L/usr/local/lib -fstack-protector
+LDFLAGS =  -fstack-protector -L/usr/local/lib
+LIBC = /lib/libc-2.12.so
+LIB_EXT = .a
+OBJ_EXT = .o
+OSNAME = linux
+OSVERS = 2.6.24-27-server
+RANLIB = :
+SITELIBEXP = /usr/local/share/perl/5.10.1
+SITEARCHEXP = /usr/local/lib/perl/5.10.1
+SO = so
+VENDORARCHEXP = /usr/lib/perl5
+VENDORLIBEXP = /usr/share/perl5
+
+
+# --- MakeMaker constants section:
+AR_STATIC_ARGS = cr
+DIRFILESEP = /
+DFSEP = $(DIRFILESEP)
+NAME = Padre::Plugin::HG
+NAME_SYM = Padre_Plugin_HG
+VERSION = 0.15
+VERSION_MACRO = VERSION
+VERSION_SYM = 0_15
+DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\"
+XS_VERSION = 0.15
+XS_VERSION_MACRO = XS_VERSION
+XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\"
+INST_ARCHLIB = blib/arch
+INST_SCRIPT = blib/script
+INST_BIN = blib/bin
+INST_LIB = blib/lib
+INST_MAN1DIR = blib/man1
+INST_MAN3DIR = blib/man3
+MAN1EXT = 1p
+MAN3EXT = 3pm
+INSTALLDIRS = site
+DESTDIR = 
+PREFIX = /usr
+PERLPREFIX = $(PREFIX)
+SITEPREFIX = $(PREFIX)/local
+VENDORPREFIX = $(PREFIX)
+INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.10
+DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
+INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.10.1
+DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
+INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5
+DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
+INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.10
+DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
+INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.10.1
+DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
+INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5
+DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
+INSTALLBIN = $(PERLPREFIX)/bin
+DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN)
+INSTALLSITEBIN = $(SITEPREFIX)/bin
+DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN)
+INSTALLVENDORBIN = $(VENDORPREFIX)/bin
+DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN)
+INSTALLSCRIPT = $(PERLPREFIX)/bin
+DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT)
+INSTALLSITESCRIPT = $(SITEPREFIX)/bin
+DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT)
+INSTALLVENDORSCRIPT = $(VENDORPREFIX)/bin
+DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT)
+INSTALLMAN1DIR = $(PERLPREFIX)/share/man/man1
+DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR)
+INSTALLSITEMAN1DIR = $(SITEPREFIX)/man/man1
+DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR)
+INSTALLVENDORMAN1DIR = $(VENDORPREFIX)/share/man/man1
+DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR)
+INSTALLMAN3DIR = $(PERLPREFIX)/share/man/man3
+DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR)
+INSTALLSITEMAN3DIR = $(SITEPREFIX)/man/man3
+DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
+INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3
+DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
+PERL_LIB = /usr/share/perl/5.10
+PERL_ARCHLIB = /usr/lib/perl/5.10
+LIBPERL_A = libperl.a
+FIRST_MAKEFILE = Makefile
+MAKEFILE_OLD = Makefile.old
+MAKE_APERL_FILE = Makefile.aperl
+PERLMAINCC = $(CC)
+PERL_INC = /usr/lib/perl/5.10/CORE
+PERL = /usr/bin/perl
+FULLPERL = /usr/bin/perl
+ABSPERL = $(PERL)
+PERLRUN = $(PERL)
+FULLPERLRUN = $(FULLPERL)
+ABSPERLRUN = $(ABSPERL)
+PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
+FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
+ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
+PERL_CORE = 0
+PERM_DIR = 755
+PERM_RW = 644
+PERM_RWX = 755
+
+MAKEMAKER   = /usr/share/perl/5.10/ExtUtils/MakeMaker.pm
+MM_VERSION  = 6.55_02
+MM_REVISION = 65502
+
+# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
+# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
+# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
+# DLBASE  = Basename part of dynamic library. May be just equal BASEEXT.
+MAKE = make
+FULLEXT = Padre/Plugin/HG
+BASEEXT = HG
+PARENT_NAME = Padre::Plugin
+DLBASE = $(BASEEXT)
+VERSION_FROM = lib/Padre/Plugin/HG.pm
+OBJECT = 
+LDFROM = $(OBJECT)
+LINKTYPE = dynamic
+BOOTDEP = 
+
+# Handy lists of source code files:
+XS_FILES = 
+C_FILES  = 
+O_FILES  = 
+H_FILES  = 
+MAN1PODS = 
+MAN3PODS = lib/Padre/Plugin/HG.pm \
+	lib/Padre/Plugin/HG/LogView.pm \
+	lib/Padre/Plugin/HG/ProjectClone.pm \
+	lib/Padre/Plugin/HG/StatusTree.pm \
+	lib/Padre/Plugin/HG/UserPassPrompt.pm
+
+# Where is the Config information that we are using/depend on
+CONFIGDEP = $(PERL_ARCHLIB)$(DFSEP)Config.pm $(PERL_INC)$(DFSEP)config.h
+
+# Where to build things
+INST_LIBDIR      = $(INST_LIB)/Padre/Plugin
+INST_ARCHLIBDIR  = $(INST_ARCHLIB)/Padre/Plugin
+
+INST_AUTODIR     = $(INST_LIB)/auto/$(FULLEXT)
+INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT)
+
+INST_STATIC      = 
+INST_DYNAMIC     = 
+INST_BOOT        = 
+
+# Extra linker info
+EXPORT_LIST        = 
+PERL_ARCHIVE       = 
+PERL_ARCHIVE_AFTER = 
+
+
+TO_INST_PM = lib/Padre/Plugin/HG.pm \
+	lib/Padre/Plugin/HG/DiffView.pm \
+	lib/Padre/Plugin/HG/LogView.pm \
+	lib/Padre/Plugin/HG/ProjectClone.pm \
+	lib/Padre/Plugin/HG/ProjectCommit.pm \
+	lib/Padre/Plugin/HG/StatusTree.pm \
+	lib/Padre/Plugin/HG/UserPassPrompt.pm \
+	lib/Padre/Plugin/HG/t/HG.t
+
+PM_TO_BLIB = lib/Padre/Plugin/HG/LogView.pm \
+	blib/lib/Padre/Plugin/HG/LogView.pm \
+	lib/Padre/Plugin/HG/ProjectCommit.pm \
+	blib/lib/Padre/Plugin/HG/ProjectCommit.pm \
+	lib/Padre/Plugin/HG.pm \
+	blib/lib/Padre/Plugin/HG.pm \
+	lib/Padre/Plugin/HG/t/HG.t \
+	blib/lib/Padre/Plugin/HG/t/HG.t \
+	lib/Padre/Plugin/HG/StatusTree.pm \
+	blib/lib/Padre/Plugin/HG/StatusTree.pm \
+	lib/Padre/Plugin/HG/DiffView.pm \
+	blib/lib/Padre/Plugin/HG/DiffView.pm \
+	lib/Padre/Plugin/HG/ProjectClone.pm \
+	blib/lib/Padre/Plugin/HG/ProjectClone.pm \
+	lib/Padre/Plugin/HG/UserPassPrompt.pm \
+	blib/lib/Padre/Plugin/HG/UserPassPrompt.pm
+
+
+# --- MakeMaker platform_constants section:
+MM_Unix_VERSION = 6.55_02
+PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc
+
+
+# --- MakeMaker tool_autosplit section:
+# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto
+AUTOSPLITFILE = $(ABSPERLRUN)  -e 'use AutoSplit;  autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)' --
+
+
+
+# --- MakeMaker tool_xsubpp section:
+
+
+# --- MakeMaker tools_other section:
+SHELL = /bin/sh
+CHMOD = chmod
+CP = cp
+MV = mv
+NOOP = $(TRUE)
+NOECHO = @
+RM_F = rm -f
+RM_RF = rm -rf
+TEST_F = test -f
+TOUCH = touch
+UMASK_NULL = umask 0
+DEV_NULL = > /dev/null 2>&1
+MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' --
+EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' --
+FALSE = false
+TRUE = true
+ECHO = echo
+ECHO_N = echo -n
+UNINST = 0
+VERBINST = 0
+MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' --
+DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' --
+UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' --
+WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' --
+MACROSTART = 
+MACROEND = 
+USEMAKEFILE = -f
+FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' --
+
+
+# --- MakeMaker makemakerdflt section:
+makemakerdflt : all
+	$(NOECHO) $(NOOP)
+
+
+# --- MakeMaker dist section:
+TAR = tar
+TARFLAGS = cvf
+ZIP = zip
+ZIPFLAGS = -r
+COMPRESS = gzip -9f
+SUFFIX = gz
+SHAR = shar
+PREOP = $(NOECHO) $(NOOP)
+POSTOP = $(NOECHO) $(NOOP)
+TO_UNIX = $(NOECHO) $(NOOP)
+CI = ci -u
+RCS_LABEL = rcs -Nv$(VERSION_SYM): -q
+DIST_CP = best
+DIST_DEFAULT = tardist
+DISTNAME = Padre-Plugin-HG
+DISTVNAME = Padre-Plugin-HG-0.15
+
+
+# --- MakeMaker macro section:
+
+
+# --- MakeMaker depend section:
+
+
+# --- MakeMaker cflags section:
+
+
+# --- MakeMaker const_loadlibs section:
+
+
+# --- MakeMaker const_cccmd section:
+
+
+# --- MakeMaker post_constants section:
+
+
+# --- MakeMaker pasthru section:
+
+PASTHRU = LIBPERL_A="$(LIBPERL_A)"\
+	LINKTYPE="$(LINKTYPE)"\
+	PREFIX="$(PREFIX)"
+
+
+# --- MakeMaker special_targets section:
+.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT)
+
+.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir
+
+
+
+# --- MakeMaker c_o section:
+
+
+# --- MakeMaker xs_c section:
+
+
+# --- MakeMaker xs_o section:
+
+
+# --- MakeMaker top_targets section:
+all :: pure_all manifypods
+	$(NOECHO) $(NOOP)
+
+
+pure_all :: config pm_to_blib subdirs linkext
+	$(NOECHO) $(NOOP)
+
+subdirs :: $(MYEXTLIB)
+	$(NOECHO) $(NOOP)
+
+config :: $(FIRST_MAKEFILE) blibdirs
+	$(NOECHO) $(NOOP)
+
+help :
+	perldoc ExtUtils::MakeMaker
+
+
+# --- MakeMaker blibdirs section:
+blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists
+	$(NOECHO) $(NOOP)
+
+# Backwards compat with 6.18 through 6.25
+blibdirs.ts : blibdirs
+	$(NOECHO) $(NOOP)
+
+$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
+	$(NOECHO) $(MKPATH) $(INST_LIBDIR)
+	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR)
+	$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists
+
+$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
+	$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
+	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB)
+	$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists
+
+$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
+	$(NOECHO) $(MKPATH) $(INST_AUTODIR)
+	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR)
+	$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists
+
+$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
+	$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
+	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR)
+	$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists
+
+$(INST_BIN)$(DFSEP).exists :: Makefile.PL
+	$(NOECHO) $(MKPATH) $(INST_BIN)
+	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN)
+	$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists
+
+$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
+	$(NOECHO) $(MKPATH) $(INST_SCRIPT)
+	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT)
+	$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists
+
+$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
+	$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
+	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR)
+	$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists
+
+$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
+	$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
+	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR)
+	$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists
+
+
+
+# --- MakeMaker linkext section:
+
+linkext :: $(LINKTYPE)
+	$(NOECHO) $(NOOP)
+
+
+# --- MakeMaker dlsyms section:
+
+
+# --- MakeMaker dynamic section:
+
+dynamic :: $(FIRST_MAKEFILE) $(INST_DYNAMIC) $(INST_BOOT)
+	$(NOECHO) $(NOOP)
+
+
+# --- MakeMaker dynamic_bs section:
+
+BOOTSTRAP =
+
+
+# --- MakeMaker dynamic_lib section:
+
+
+# --- MakeMaker static section:
+
+## $(INST_PM) has been moved to the all: target.
+## It remains here for awhile to allow for old usage: "make static"
+static :: $(FIRST_MAKEFILE) $(INST_STATIC)
+	$(NOECHO) $(NOOP)
+
+
+# --- MakeMaker static_lib section:
+
+
+# --- MakeMaker manifypods section:
+
+POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--"
+POD2MAN = $(POD2MAN_EXE)
+
+
+manifypods : pure_all  \
+	lib/Padre/Plugin/HG/LogView.pm \
+	lib/Padre/Plugin/HG.pm \
+	lib/Padre/Plugin/HG/ProjectClone.pm \
+	lib/Padre/Plugin/HG/UserPassPrompt.pm \
+	lib/Padre/Plugin/HG/StatusTree.pm
+	$(NOECHO) $(POD2MAN) --section=$(MAN3EXT) --perm_rw=$(PERM_RW) \
+	  lib/Padre/Plugin/HG/LogView.pm $(INST_MAN3DIR)/Padre::Plugin::HG::LogView.$(MAN3EXT) \
+	  lib/Padre/Plugin/HG.pm $(INST_MAN3DIR)/Padre::Plugin::HG.$(MAN3EXT) \
+	  lib/Padre/Plugin/HG/ProjectClone.pm $(INST_MAN3DIR)/Padre::Plugin::HG::ProjectClone.$(MAN3EXT) \
+	  lib/Padre/Plugin/HG/UserPassPrompt.pm $(INST_MAN3DIR)/Padre::Plugin::HG::UserPassPrompt.$(MAN3EXT) \
+	  lib/Padre/Plugin/HG/StatusTree.pm $(INST_MAN3DIR)/Padre::Plugin::HG::StatusTree.$(MAN3EXT) 
+
+
+
+
+# --- MakeMaker processPL section:
+
+
+# --- MakeMaker installbin section:
+
+
+# --- MakeMaker subdirs section:
+
+# none
+
+# --- MakeMaker clean_subdirs section:
+clean_subdirs :
+	$(NOECHO) $(NOOP)
+
+
+# --- MakeMaker clean section:
+
+# Delete temporary files but do not touch installed files. We don't delete
+# the Makefile here so a later make realclean still has a makefile to use.
+
+clean :: clean_subdirs
+	- $(RM_F) \
+	  *$(LIB_EXT) core \
+	  core.[0-9] $(INST_ARCHAUTODIR)/extralibs.all \
+	  core.[0-9][0-9] $(BASEEXT).bso \
+	  pm_to_blib.ts core.[0-9][0-9][0-9][0-9] \
+	  $(BASEEXT).x $(BOOTSTRAP) \
+	  perl$(EXE_EXT) tmon.out \
+	  *$(OBJ_EXT) pm_to_blib \
+	  $(INST_ARCHAUTODIR)/extralibs.ld blibdirs.ts \
+	  core.[0-9][0-9][0-9][0-9][0-9] *perl.core \
+	  core.*perl.*.? $(MAKE_APERL_FILE) \
+	  perl $(BASEEXT).def \
+	  core.[0-9][0-9][0-9] mon.out \
+	  lib$(BASEEXT).def perlmain.c \
+	  perl.exe so_locations \
+	  $(BASEEXT).exp 
+	- $(RM_RF) \
+	  Padre-Plugin-HG-* blib 
+	- $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL)
+
+
+# --- MakeMaker realclean_subdirs section:
+realclean_subdirs :
+	$(NOECHO) $(NOOP)
+
+
+# --- MakeMaker realclean section:
+# Delete temporary files (via clean) and also delete dist files
+realclean purge ::  clean realclean_subdirs
+	- $(RM_F) \
+	  $(MAKEFILE_OLD) $(FIRST_MAKEFILE) 
+	- $(RM_RF) \
+	  $(DISTVNAME) 
+
+
+# --- MakeMaker metafile section:
+metafile : create_distdir
+	$(NOECHO) $(ECHO) Generating META.yml
+	$(NOECHO) $(ECHO) '--- #YAML:1.0' > META_new.yml
+	$(NOECHO) $(ECHO) 'name:               Padre-Plugin-HG' >> META_new.yml
+	$(NOECHO) $(ECHO) 'version:            0.15' >> META_new.yml
+	$(NOECHO) $(ECHO) 'abstract:           Mecurial interface for Padre' >> META_new.yml
+	$(NOECHO) $(ECHO) 'author:' >> META_new.yml
+	$(NOECHO) $(ECHO) '    - Michael Mueller <michael@muellers.net.au>' >> META_new.yml
+	$(NOECHO) $(ECHO) 'license:            perl' >> META_new.yml
+	$(NOECHO) $(ECHO) 'distribution_type:  module' >> META_new.yml
+	$(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml
+	$(NOECHO) $(ECHO) '    ExtUtils::MakeMaker:  0' >> META_new.yml
+	$(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml
+	$(NOECHO) $(ECHO) '    ExtUtils::MakeMaker:  0' >> META_new.yml
+	$(NOECHO) $(ECHO) 'requires:' >> META_new.yml
+	$(NOECHO) $(ECHO) '    Test::More:  0' >> META_new.yml
+	$(NOECHO) $(ECHO) 'no_index:' >> META_new.yml
+	$(NOECHO) $(ECHO) '    directory:' >> META_new.yml
+	$(NOECHO) $(ECHO) '        - t' >> META_new.yml
+	$(NOECHO) $(ECHO) '        - inc' >> META_new.yml
+	$(NOECHO) $(ECHO) 'generated_by:       ExtUtils::MakeMaker version 6.55_02' >> META_new.yml
+	$(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml
+	$(NOECHO) $(ECHO) '    url:      http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml
+	$(NOECHO) $(ECHO) '    version:  1.4' >> META_new.yml
+	-$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml
+
+
+# --- MakeMaker signature section:
+signature :
+	cpansign -s
+
+
+# --- MakeMaker dist_basics section:
+distclean :: realclean distcheck
+	$(NOECHO) $(NOOP)
+
+distcheck :
+	$(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck
+
+skipcheck :
+	$(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck
+
+manifest :
+	$(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest
+
+veryclean : realclean
+	$(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old 
+
+
+
+# --- MakeMaker dist_core section:
+
+dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE)
+	$(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \
+	  -e '    if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' --
+
+tardist : $(DISTVNAME).tar$(SUFFIX)
+	$(NOECHO) $(NOOP)
+
+uutardist : $(DISTVNAME).tar$(SUFFIX)
+	uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu
+
+$(DISTVNAME).tar$(SUFFIX) : distdir
+	$(PREOP)
+	$(TO_UNIX)
+	$(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME)
+	$(RM_RF) $(DISTVNAME)
+	$(COMPRESS) $(DISTVNAME).tar
+	$(POSTOP)
+
+zipdist : $(DISTVNAME).zip
+	$(NOECHO) $(NOOP)
+
+$(DISTVNAME).zip : distdir
+	$(PREOP)
+	$(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME)
+	$(RM_RF) $(DISTVNAME)
+	$(POSTOP)
+
+shdist : distdir
+	$(PREOP)
+	$(SHAR) $(DISTVNAME) > $(DISTVNAME).shar
+	$(RM_RF) $(DISTVNAME)
+	$(POSTOP)
+
+
+# --- MakeMaker distdir section:
+create_distdir :
+	$(RM_RF) $(DISTVNAME)
+	$(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \
+		-e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');"
+
+distdir : create_distdir distmeta 
+	$(NOECHO) $(NOOP)
+
+
+
+# --- MakeMaker dist_test section:
+disttest : distdir
+	cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL 
+	cd $(DISTVNAME) && $(MAKE) $(PASTHRU)
+	cd $(DISTVNAME) && $(MAKE) test $(PASTHRU)
+
+
+
+# --- MakeMaker dist_ci section:
+
+ci :
+	$(PERLRUN) "-MExtUtils::Manifest=maniread" \
+	  -e "@all = keys %{ maniread() };" \
+	  -e "print(qq{Executing $(CI) @all\n}); system(qq{$(CI) @all});" \
+	  -e "print(qq{Executing $(RCS_LABEL) ...\n}); system(qq{$(RCS_LABEL) @all});"
+
+
+# --- MakeMaker distmeta section:
+distmeta : create_distdir metafile
+	$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{META.yml} => q{Module meta-data (added by MakeMaker)}}) } ' \
+	  -e '    or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"' --
+
+
+
+# --- MakeMaker distsignature section:
+distsignature : create_distdir
+	$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) } ' \
+	  -e '    or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"' --
+	$(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE
+	cd $(DISTVNAME) && cpansign -s
+
+
+
+# --- MakeMaker install section:
+
+install :: pure_install doc_install
+	$(NOECHO) $(NOOP)
+
+install_perl :: pure_perl_install doc_perl_install
+	$(NOECHO) $(NOOP)
+
+install_site :: pure_site_install doc_site_install
+	$(NOECHO) $(NOOP)
+
+install_vendor :: pure_vendor_install doc_vendor_install
+	$(NOECHO) $(NOOP)
+
+pure_install :: pure_$(INSTALLDIRS)_install
+	$(NOECHO) $(NOOP)
+
+doc_install :: doc_$(INSTALLDIRS)_install
+	$(NOECHO) $(NOOP)
+
+pure__install : pure_site_install
+	$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
+
+doc__install : doc_site_install
+	$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
+
+pure_perl_install :: all
+	$(NOECHO) umask 022; $(MOD_INSTALL) \
+		$(INST_LIB) $(DESTINSTALLPRIVLIB) \
+		$(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \
+		$(INST_BIN) $(DESTINSTALLBIN) \
+		$(INST_SCRIPT) $(DESTINSTALLSCRIPT) \
+		$(INST_MAN1DIR) $(DESTINSTALLMAN1DIR) \
+		$(INST_MAN3DIR) $(DESTINSTALLMAN3DIR)
+	$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
+		$(SITEARCHEXP)/auto/$(FULLEXT)
+
+
+pure_site_install :: all
+	$(NOECHO) umask 02; $(MOD_INSTALL) \
+		read $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist \
+		write $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist \
+		$(INST_LIB) $(DESTINSTALLSITELIB) \
+		$(INST_ARCHLIB) $(DESTINSTALLSITEARCH) \
+		$(INST_BIN) $(DESTINSTALLSITEBIN) \
+		$(INST_SCRIPT) $(DESTINSTALLSITESCRIPT) \
+		$(INST_MAN1DIR) $(DESTINSTALLSITEMAN1DIR) \
+		$(INST_MAN3DIR) $(DESTINSTALLSITEMAN3DIR)
+	$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
+		$(PERL_ARCHLIB)/auto/$(FULLEXT)
+
+pure_vendor_install :: all
+	$(NOECHO) umask 022; $(MOD_INSTALL) \
+		$(INST_LIB) $(DESTINSTALLVENDORLIB) \
+		$(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \
+		$(INST_BIN) $(DESTINSTALLVENDORBIN) \
+		$(INST_SCRIPT) $(DESTINSTALLVENDORSCRIPT) \
+		$(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \
+		$(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)
+
+doc_perl_install :: all
+
+doc_site_install :: all
+	$(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLSITEARCH)/perllocal.pod
+	-$(NOECHO) umask 02; $(MKPATH) $(DESTINSTALLSITEARCH)
+	-$(NOECHO) umask 02; $(DOC_INSTALL) \
+		"Module" "$(NAME)" \
+		"installed into" "$(INSTALLSITELIB)" \
+		LINKTYPE "$(LINKTYPE)" \
+		VERSION "$(VERSION)" \
+		EXE_FILES "$(EXE_FILES)" \
+		>> $(DESTINSTALLSITEARCH)/perllocal.pod
+
+doc_vendor_install :: all
+
+
+uninstall :: uninstall_from_$(INSTALLDIRS)dirs
+	$(NOECHO) $(NOOP)
+
+uninstall_from_perldirs ::
+
+uninstall_from_sitedirs ::
+	$(NOECHO) $(UNINSTALL) $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist
+
+uninstall_from_vendordirs ::
+
+
+
+# --- MakeMaker force section:
+# Phony target to force checking subdirectories.
+FORCE :
+	$(NOECHO) $(NOOP)
+
+
+# --- MakeMaker perldepend section:
+
+
+# --- MakeMaker makefile section:
+# We take a very conservative approach here, but it's worth it.
+# We move Makefile to Makefile.old here to avoid gnu make looping.
+$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
+	$(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?"
+	$(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..."
+	-$(NOECHO) $(RM_F) $(MAKEFILE_OLD)
+	-$(NOECHO) $(MV)   $(FIRST_MAKEFILE) $(MAKEFILE_OLD)
+	- $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL)
+	$(PERLRUN) Makefile.PL 
+	$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
+	$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command.  <=="
+	$(FALSE)
+
+
+
+# --- MakeMaker staticmake section:
+
+# --- MakeMaker makeaperl section ---
+MAP_TARGET    = perl
+FULLPERL      = /usr/bin/perl
+
+$(MAP_TARGET) :: static $(MAKE_APERL_FILE)
+	$(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@
+
+$(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib
+	$(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET)
+	$(NOECHO) $(PERLRUNINST) \
+		Makefile.PL DIR= \
+		MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \
+		MAKEAPERL=1 NORECURS=1 CCCDLFLAGS=
+
+
+# --- MakeMaker test section:
+
+TEST_VERBOSE=0
+TEST_TYPE=test_$(LINKTYPE)
+TEST_FILE = test.pl
+TEST_FILES = t/*.t
+TESTDB_SW = -d
+
+testdb :: testdb_$(LINKTYPE)
+
+test :: $(TEST_TYPE) subdirs-test
+
+subdirs-test ::
+	$(NOECHO) $(NOOP)
+
+
+test_dynamic :: pure_all
+	PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-e" "test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES)
+
+testdb_dynamic :: pure_all
+	PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE)
+
+test_ : test_dynamic
+
+test_static :: test_dynamic
+testdb_static :: testdb_dynamic
+
+
+# --- MakeMaker ppd section:
+# Creates a PPD (Perl Package Description) for a binary distribution.
+ppd :
+	$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="0.15">' > $(DISTNAME).ppd
+	$(NOECHO) $(ECHO) '    <ABSTRACT>Mecurial interface for Padre</ABSTRACT>' >> $(DISTNAME).ppd
+	$(NOECHO) $(ECHO) '    <AUTHOR>Michael Mueller &lt;michael@muellers.net.au&gt;</AUTHOR>' >> $(DISTNAME).ppd
+	$(NOECHO) $(ECHO) '    <IMPLEMENTATION>' >> $(DISTNAME).ppd
+	$(NOECHO) $(ECHO) '        <REQUIRE NAME="Test::More" />' >> $(DISTNAME).ppd
+	$(NOECHO) $(ECHO) '        <ARCHITECTURE NAME="i686-linux-gnu-thread-multi-5.10" />' >> $(DISTNAME).ppd
+	$(NOECHO) $(ECHO) '        <CODEBASE HREF="" />' >> $(DISTNAME).ppd
+	$(NOECHO) $(ECHO) '    </IMPLEMENTATION>' >> $(DISTNAME).ppd
+	$(NOECHO) $(ECHO) '</SOFTPKG>' >> $(DISTNAME).ppd
+
+
+# --- MakeMaker pm_to_blib section:
+
+pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM)
+	$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \
+	  lib/Padre/Plugin/HG/LogView.pm blib/lib/Padre/Plugin/HG/LogView.pm \
+	  lib/Padre/Plugin/HG/ProjectCommit.pm blib/lib/Padre/Plugin/HG/ProjectCommit.pm \
+	  lib/Padre/Plugin/HG.pm blib/lib/Padre/Plugin/HG.pm \
+	  lib/Padre/Plugin/HG/t/HG.t blib/lib/Padre/Plugin/HG/t/HG.t \
+	  lib/Padre/Plugin/HG/StatusTree.pm blib/lib/Padre/Plugin/HG/StatusTree.pm \
+	  lib/Padre/Plugin/HG/DiffView.pm blib/lib/Padre/Plugin/HG/DiffView.pm \
+	  lib/Padre/Plugin/HG/ProjectClone.pm blib/lib/Padre/Plugin/HG/ProjectClone.pm \
+	  lib/Padre/Plugin/HG/UserPassPrompt.pm blib/lib/Padre/Plugin/HG/UserPassPrompt.pm 
+	$(NOECHO) $(TOUCH) pm_to_blib
+
+
+# --- MakeMaker selfdocument section:
+
+
+# --- MakeMaker postamble section:
+
+
+# End.

Padre-Plugin-HG-0.01.tar.gz

Binary file removed.

blib/lib/Padre/Plugin/HG.pm

 use Padre::Plugin::HG::ProjectCommit;
 use Padre::Plugin::HG::ProjectClone;
 use Padre::Plugin::HG::UserPassPrompt;
+use Padre::Plugin::HG::DiffView;
+use Padre::Plugin::HG::LogView;
 my %projects;
-our $VERSION = '0.01';
+our $VERSION = '0.16';
 our @ISA     = 'Padre::Plugin';
 
 my $VCS = "Mercurial";
-
+# enter the vcs commands here, variables will be evaled in in the sub routines. 
+# was meant as a way to make it more generic.  Not sure it is going to 
+# succeed. 
 my %VCSCommand = ( commit => 'hg commit -A -m"$message" $path ',
 		add => 'hg add $path',
 		status =>'hg status --all $path',
 		root => 'hg root', 
 		diff => 'hg diff $path',
+		diff_revision => 'hg diff -r $revision $path',
 		clone=> 'hg clone $path',
 		pull =>'hg pull --update --noninteractive  ',
-		push =>'hg push $path');
+		push =>'hg push $path',
+		log =>'hg log $path');
 		
-my %HGStatus = ( M => 'File Modified', 
-A => 'File Added not Committed',
-R => 'File Removed',
-C => 'Up to Date',
-'!' => 'Deleted But Still Tracked!',
-'?' => 'Not Tracked',
-I => 'ignored'
-);
+
 
 =pod
 
 
 Padre::Plugin::HG - Mecurial interface for Padre
 
-=head1 SYNOPSIS
+=head1 Instructions
+
+Ensure Mecurial is installed and the hg command is in the path. 
 
 cpan install Padre::Plugin::HG
 
-Access it via Plugin/HG then View Project 
+Either open a file in an existing Mecurial project or choose Plugins > HG > Clone and enter an 
+exisiting repository to clone. 
+ 
+you can clone this project it self with
+"hg clone https://code4pay@bitbucket.org/code4pay/padre-plugin-hg/"
 
+Once you have a file from the project open  got to Plugins > HG > View Project.
+this will display the project tree in the left hand side bar and allow you to 
+perform operations on the files /project via the right mouse button.
+
+Project wide operations like pull are only available by right clicking the project root. 
+ 
 
 =head1 AUTHOR
 
 This program is free software; you can redistribute it and/or modify it
 under the same terms as Perl itself.
 
-=head1 METHODS
+
 
 =cut
 
 # Padre::Plugin Methods
 
 sub padre_interfaces {
-	'Padre::Plugin' => 0.24
+	'Padre::Plugin' => 0.72
 }
 
 sub plugin_name {
 	return $self->plugin_name => [
 		'About'             => sub { $self->show_about },
 		'View Project'	    => sub {$self->show_statusTree},
-		'Add'		    => sub {$self->vcs_add},
 		'Clone'		    => sub {$self->show_project_clone},
-		'Commit...' 	  => sub { $self->show_commit_list},
+
 	];
 }
 
 
 	return;
 }
-=pod
 
-=head2 vcs_commit
+#
+#vcs_commit
+#
+# performs the commit 
+# $self->vcs_commit($filename, $dir);
+# will prompt for the commit message.
+# 
 
- performs the commit 
- $self->vcs_commit($filename, $dir);
- will prompt for the commit message.
- 
-=cut
 
 sub vcs_commit {
 	my ($self, $path, $dir ) = @_;
 	my $message = $main->prompt("$VCS Commit of $path", "Please type in your message", "MY_".$VCS."_COMMIT");
 	if ($message) {
 		
-		my $command = eval "qq\0$VCSCommand{commit} $path\0";
+		my $command = eval "qq\0$VCSCommand{commit}\0";
 		my $result = $self->vcs_execute($command, $dir);
 		$main->message( $result, "$VCS Commiting $path" );
 	}
 	return;	
 }
 
-=pod
 
-=head2 vcs_add
+#
+#vcs_add
+#
+# Adds the file to the repository
+# $self->vcs_add($filename, $dir);
+# will prompt for the commit message.
+# 
 
- Adds the file to the repository
- $self->vcs_add($filename, $dir);
- will prompt for the commit message.
- 
-=cut
 
 sub vcs_add {
 	my ($self, $path, $dir) = @_;
 	my $main = Padre->ide->wx->main;
-	my $command = eval "qq\0$VCSCommand{add} $path\0";
+	my $command = eval "qq\0$VCSCommand{add}\0";
 	my $result = $self->vcs_execute($command,$dir);
 	$main->message( $result, "$VCS Adding to Repository" );
 	return;	
 }
 
-=pod
+#
+# vcs_diff
+#
+# compare the file to the repository tip
+# $self->vcs_diff($filename, $dir);
+# provides some basic diffing the current file agains the tip
 
-=head2 vcs_add
-
- Adds the file to the repository
- $self->vcs_diff($filename, $dir);
- provides some basic diffing the current file agains the tip
-
-=cut
 sub vcs_diff {
 	my ($self, $path, $dir) = @_;
 	
 	my $main = Padre->ide->wx->main;
-	my $command = eval "qq\0$VCSCommand{diff} $path\0";
+	my $command = eval "qq\0$VCSCommand{diff}\0";
 	return $main->error('File not in a $VCS Project', "Padre $VCS" ) if not $self->_project_root($path);
 	my $result = $self->vcs_execute($command, $dir);
-	use Padre::Wx::Dialog::Text;
-	Padre::Wx::Dialog::Text->show($main, "$VCS Diff of $path", $result);
-	return;
+	return $result;
 }
 
-=pod
+# vcs_diff_revision
+#
+# compare the file to a repository revision 
+# $self->vcs_diff($filename, $dir, $revision);
+# Revision for HG is the changeset id. 
 
-=head2 clone_project
 
- Adds the file to the repository
- $self->vcs_diff($repository, $destination_dir);
- Will clone a repository and place it in the destination dir
- 
-=cut
+sub vcs_diff_revision {
+	my ($self, $path, $dir, $revision) = @_;
+	
+	my $main = Padre->ide->wx->main;
+	my $command = eval "qq\0$VCSCommand{diff_revision}\0";
+	return $main->error('File not in a $VCS Project', "Padre $VCS" ) if not $self->_project_root($path);
+	my $result = $self->vcs_execute($command, $dir);
+	return $result;
+}
+
+
+
+# vcs_log
+#
+# show the commit history of the passed file. 
+# $self->vcs_commit($filename, $dir);
+# returns a string containing the log history
+
+
+sub vcs_log {
+	my ($self, $path, $dir) = @_;
+	
+	my $main = Padre->ide->wx->main;
+	my $command = eval "qq\0$VCSCommand{log}\0";
+	return $main->error('File not in a $VCS Project', "Padre $VCS" ) if not $self->_project_root($path);
+	my $result = $self->vcs_execute($command, $dir);
+	return $result;
+}
+
+
+#
+#clone_project
+#
+# Adds the file to the repository
+# $self->vcs_diff($repository, $destination_dir);
+# Will clone a repository and place it in the destination dir
+# 
+
 sub clone_project
 {
 	my ($self, $path, $dir) = @_;
 	$main->message( $result, "$VCS Cloning $path" );
 	return;
 }
-=pod
 
-=head2 pull_update_project
+#
+# pull_update_project
+#
+# Pulls updates to a project. 
+# It will perform an update automatically on the repository
+# $self->pull_update_project($file, $projectdir);
+# Only pulls changes from the default repository, which is normally
+# the one you cloned from.
 
- Pulls updates to a project. 
- It will perform an update automatically on the repository
- $self->pull_update_project($file, $projectdir);
- Only pulls changes from the default repository, which is normally
- the one you cloned from.
-
-=cut
 sub pull_update_project
 {
 	my ($self, $path, $dir) = @_;
 	$main->message( $result, "$VCS Cloning $path" );
 	return;
 }
-=pod
 
-=head2 push_project
 
- Pushes updates to a remote repository. 
- Prompts for the username and password. 
- $self->push_project($file, $projectdir);
- Only pushes changes to the default remote repository, which is normally
- the one you cloned from.
+# Pushes updates to a remote repository. 
+# Prompts for the username and password. 
+# $self->push_project($file, $projectdir);
+# Only pushes changes to the default remote repository, which is normally
+# the one you cloned from.
 
-=cut
+
 sub push_project
 {
 	my ($self, $path, $dir) = @_;
 	return;
 }
 
-=pod
 
-=head2 vcs_execute
 
- Executes a command after changing to the appropriate dir.
- $self->vcs_execute($command, $dir);
- All output is captured and returned as a string.
+# vcs_execute
+#
+# Executes a command after changing to the appropriate dir.
+# $self->vcs_execute($command, $dir);
+# All output is captured and returned as a string.
 
-=cut
 sub vcs_execute
 {
 	my ($self, $command, $dir) = @_;
+	print "Command $command\n";
+	my $busyCursor = Wx::BusyCursor->new();
 	my $result = capture_merged(sub{chdir($dir);system($command)});
+	if (!$result){$result = "Action Completed"}
+	$busyCursor = undef;
 	return $result;
 }
 
-=pod
 
-=head2 show_statusTree
 
- Displays a Project Browser in the side pane. The Browser shows the status of the
- files in HG and gives menu options to perform actions. 
+# show_statusTree
+#
+# Displays a Project Browser in the side pane. The Browser shows the status of the
+# files in HG and gives menu options to perform actions. 
 
-=cut
+
 sub show_statusTree
 {	
 	my ($self) = @_;
 	require Padre::Plugin::HG::StatusTree;
 	my $main = Padre->ide->wx->main;
 	my $project_root = $self->_project_root(current_filename());
-
+	$self->{project_path} = $project_root;
 	return $main->error("Not a $VCS Project") if !$project_root;
 	# we only want to add a tree for projects that don't already have one. 
 	if (!exists($projects{$project_root}) )
 	}
 }
 
-=pod
+#
+#
+#show_commit_list
+#
+# Displays a list of all the files that are awaiting commiting. It will include
+# not added and deleted files adding and removing them as required. 
 
-=head2 show_commit_list
 
- Displays a list of all the files that are awaiting commiting. It will include
- not added and deleted files adding and removing them as required. 
-
-=cut
 sub show_commit_list
 {	
 	my ($self) = @_;
 
 	return $main->error("Not a $VCS Project") if ! $self->{project_path} ;
  
-	Padre::Plugin::HG::ProjectCommit->showList($self);	
+	my $obj = Padre::Plugin::HG::ProjectCommit->showList($self);	
+	$obj = undef;
 
 }
 
-=pod
 
-=head2 show_project_clone
+#
+# show_diff
+#
+# Displays a list of all the files that are awaiting commiting. It will include
+# not added and deleted files adding and removing them as required. 
 
- Dialog for project cloning
 
-=cut
+sub show_diff
+{	
+	my ($self, $file, $path) = @_;
+	my $main = Padre->ide->wx->main;
+	 $self->{project_path} = $self->_project_root($file);
+        my $full_path = File::Spec->catdir(($path,$file));
+        return $main->error("Not a $VCS Project") if ! $self->{project_path} ;
+ 	my $differences = $self->vcs_diff($file, $path);	
+	Padre::Plugin::HG::DiffView->showDiff($self,$differences);
+
+	
+
+}
+
+#show_diff_revision
+#
+# Displays a list of all the revisions for the selected file. 
+# Allowing you to choose one to diff the current selection to.  
+
+sub show_diff_revision
+{	
+	my ($self, $file, $path) = @_;
+	my $main = Padre->ide->wx->main;
+	 $self->{project_path} = $self->_project_root($file);
+        my $full_path = File::Spec->catdir(($path,$file));
+	return $main->error("Not a $VCS Project") if ! $self->{project_path} ;
+ 	my $changeset = Padre::Plugin::HG::LogView->showList($self,$full_path);
+	my $differences = $self->vcs_diff_revision($file, $path, $changeset);	
+	Padre::Plugin::HG::DiffView->showDiff($self,$differences);
+
+
+}
+
+#show_commit_list
+#
+# Displays a list of all the files that are awaiting commiting. It will include
+# not added and deleted files adding and removing them as required. 
+
+sub show_log
+{	
+	my ($self) = @_;
+	my $main = Padre->ide->wx->main;
+	 $self->{project_path} = $self->_project_root(current_filename());
+
+	return $main->error("Not a $VCS Project") if ! $self->{project_path} ;
+ 
+	my $obj = Padre::Plugin::HG::LogView->showList($self,current_filename());	
+	$obj = undef;
+
+}
+
+
+
+
+#show_project_clone
+#
+# Dialog for project cloning
+#
 
 sub show_project_clone
 {	
 	{
 		$clone->choose_destination();
 	}
-	
+
 	if ($clone->project_url()  and $clone->destination_dir())
 	{
 		$self->clone_project(
 
 
 
-=pod
 
-=head2 _project_root
+#
+# _project_root
+#
+# $self->_project_root($filename);
+# Calculates the project root.  if the file is not in a project it 
+# will return 0 
+# otherwise it returns the fully qualified path to the project. 
 
- $self->_project_root($filename);
- Calculates the project root.  if the file is not in a project it 
- will return 0 
- otherwise it returns the fully qualified path to the project. 
-
-=cut
 
 sub _project_root
 {
 	return $project_root;
 }
 
-=pod
 
-=head2 _get_hg_files
+# _get_hg_files
+#
+# $self->_get_hg_files(@hgStatus);
+#  Pass the output of hg status and it will give back an array
+#  each element of the array is [$status, $filename]
 
- $self->_get_hg_files(@hgStatus);
-  Pass the output of hg status and it will give back an array
-  each element of the array is [$status, $filename]
 
-=cut
 
 sub _get_hg_files
 {
 	return @files;
 }
 
-=pod
 
-=head2 current_filename
+#current_filename 
+#
+# $self->current_filename();
+#  returns the path of the file with the current attention 
+#  in the ide.
 
- $self->current_filename();
-  returns the path of the file with the current attention 
-  in the ide.
 
-=cut
 
 
 sub current_filename {
         return ($filename); 
 }
 
-=pod
+#parse_log
+#
+# $self->parse_log($log);;
+# Pass it the output of the hg log command and it will 
+# return an array of hashes with each array element 
+# being  a  hash of the commit values. 
+# eg changeset, user, date ...
+#
 
-=head2 object_for_testing
 
- creates a blessed object so we can run our tests. 
 
-=cut
+sub parse_log {
+	my ($self,$log) = @_;
+	
+	# log output looks like
+	# 
+	#changeset:   3:80d72b2a4751
+	#user:        bill@microsoft.com
+	#date:        Fri Oct 16 07:05:27 2009 +1100
+	#summary:     Added files for CPAN distribution
+	#
+	#changeset:   3:80d72b2a4751
+	#user:        bill@microsoft.com
+	#date:        Fri Oct 16 07:05:27 2009 +1100
+	#summary:     Tricky Comment summary: CPAN distribution
+	
+	#split the output at blank lines
+	my @commits = split(/\n{2,}/, $log);
+	my $i = 0;
+	my @result;
+	foreach my $commit (@commits)
+	{
+		
+		
+		$result[$i] = {
+			changeset=>$commit =~ /^changeset:\s+(.*)/m,
+			user=>$commit=~ /^user:\s+(.*)/m,
+			date=>$commit=~ /^date:\s+(.*)/m, 
+			summary=>$commit=~ /^summary:\s+(.*)/m,
+		} ;
+		$i++;
+	} 
+	
+	return @result;
+}
+
+
+
+# object_for_testing
+#
+# creates a blessed object so we can run our tests. 
+#
+
 
 sub object_for_testing
 {

blib/lib/Padre/Plugin/HG/DiffView.pm

+package Padre::Plugin::HG::DiffView;
+use strict;
+use Padre::Wx;
+use Padre::Wx::Icon;
+use Wx::Event qw( EVT_BUTTON );
+our @ISA     = 'Wx::Dialog';
+
+
+my $images = Wx::ImageList->new( 16, 16 );
+        my $file_types = {
+                M => $images->Add(
+	                        Wx::ArtProvider::GetBitmap( 'wxART_TIP', 'wxART_OTHER_C', [ 16, 16 ] ),
+                ),
+                dir => $images->Add(
+                        Wx::ArtProvider::GetBitmap( 'wxART_FOLDER', 'wxART_OTHER_C', [ 16, 16 ] ),
+                ),
+                C => $images->Add(
+                        Wx::ArtProvider::GetBitmap( 'wxART_TICK_MARK', 'wxART_OTHER_C', [ 16, 16 ] ),
+                ),
+                '?' => $images->Add(
+                        Wx::ArtProvider::GetBitmap( 'wxART_MISSING_IMAGE', 'wxART_OTHER_C', [ 16, 16 ] ),
+                ),
+          };
+
+
+sub showDiff
+{
+	my ($class, $hg, $diffString) = @_;
+	
+		my $self = $class->SUPER::new(
+		undef,
+		-1,
+		'Padre Mecurial Commit',
+		Wx::wxDefaultPosition,
+		Wx::wxDefaultSize,
+		Wx::wxDEFAULT_FRAME_STYLE | Wx::wxTAB_TRAVERSAL,
+		
+	);
+	$self->{hg} = $hg;
+	$self->SetIcon(Padre::Wx::Icon::PADRE);
+	my $sizer = Wx::BoxSizer->new(Wx::wxVERTICAL);
+	my $sizer2 = Wx::BoxSizer->new(Wx::wxHORIZONTAL);
+	$self->{diff_box} = Wx::TextCtrl->new($self, -1, ,'',Wx::wxDefaultPosition,
+	Wx::wxDefaultSize,Wx::wxTE_READONLY|Wx::wxTE_MULTILINE, Wx::wxDefaultValidator, 'diffBox');
+    
+        #insert the HG data
+        chdir ($self->{hg}->{project_path});
+        my @hgdata = split(/\n/, $diffString);
+        #my @filestatus =  $self->{hg}->_get_hg_files(@hgdata);
+     
+	$self->_populate_list( \@hgdata);
+
+	
+
+
+	my $ok_button = Wx::Button->new($self, 
+						1,                  # id
+						"OK", # label
+						[50,50]             # position
+                                       );
+
+
+	#Handle the Button Clicks
+	
+
+             
+	EVT_BUTTON( $ok_button, 
+             1,
+              sub{$self->Close(); return} 
+             );
+
+    $sizer->Add($self->{diff_box}, 1, Wx::wxEXPAND, 10);
+    $sizer2->Add($ok_button, 0, Wx::wxALL, 10);
+    $sizer->Add($sizer2, 0, Wx::wxEXPAND, 10);
+    $self->SetSizer($sizer);
+    $self->SetAutoLayout(1);
+    $self->ShowModal(); 
+}
+
+
+sub _get_selected_items
+{
+	my( $self, $event ) = @_; 
+
+	# Change the contents of $self->{txt}
+	
+	my $file_list;
+	#$self->{txt}->SetLabel("The button was clicked!"); 
+	my $item = -1;
+	 while ( 1 ==1 )
+	{
+        $item = $self->{file_listbox}->GetNextItem($item,
+                                     Wx::wxLIST_NEXT_ALL,
+                                     Wx::wxLIST_STATE_SELECTED);
+        if ( $item == -1 )
+        {
+            last;
+	}
+        # this item is selected - do whatever is needed with it
+        my $itemObj = $self->{file_listbox}->GetItem($item);
+        $file_list .= ' "'.$itemObj->GetText().'" ';
+       
+    }
+    
+    $self->{hg}->vcs_commit($file_list, $self->{hg}->{project_path});
+    $self->Close();
+}
+
+sub _populate_list
+{
+ my ($self, $lines) = @_;
+ 
+ if (!$lines) {return}
+ foreach my $line (@$lines)
+ {
+	if ($line =~ /^\+/)
+	{
+                $self->{diff_box}->SetDefaultStyle(Wx::TextAttr->new(Wx::Colour->new('sea green')));
+
+	}
+	elsif ($line =~ /^\-/)
+	{
+		$self->{diff_box}->SetDefaultStyle(Wx::TextAttr->new(Wx::Colour->new('red')));
+	}
+	else
+	{
+		$self->{diff_box}->SetDefaultStyle(Wx::TextAttr->new(Wx::Colour->new('black')));
+	}
+	$self->{diff_box}->AppendText($line."\n");
+
+ }	
+	
+}
+
+

blib/lib/Padre/Plugin/HG/LogView.pm

+=pod
+
+=head1  NAME
+
+Padre::Plugin::HG::LogView
+Displays a list of commits for the passed file. 
+
+=head1 SYNOPSIS
+
+ my $changeset = Padre::Plugin::HG::LogView->showList($self, $file);
+ 
+=head1 DESCRIPTION
+
+This module displays the list of commits that have occured for the passed file. 
+it returns the changeset number. 
+=head1 METHODS
+
+=cut
+
+
+package Padre::Plugin::HG::LogView;
+use strict;
+use Padre::Wx;
+use Padre::Wx::Icon;
+use Wx::Event qw( EVT_BUTTON );
+our @ISA     = 'Wx::Dialog';
+
+
+
+sub showList
+{
+	my ($class, $hg, $file) = @_;
+	
+		my $self = $class->SUPER::new(
+		undef,
+		-1,
+		'Padre Diff to Revision',
+		Wx::wxDefaultPosition,
+		Wx::wxDefaultSize,
+		Wx::wxDEFAULT_FRAME_STYLE | Wx::wxTAB_TRAVERSAL,
+		
+	);
+	$self->{hg} = $hg;
+	$self->SetIcon(Padre::Wx::Icon::PADRE);
+	my $sizer = Wx::BoxSizer->new(Wx::wxVERTICAL);
+	my $sizer2 = Wx::BoxSizer->new(Wx::wxHORIZONTAL);
+	$self->{list_box} = Wx::ListCtrl->new($self, -1, Wx::wxDefaultPosition,
+	Wx::wxDefaultSize,Wx::wxLC_REPORT|Wx::wxLC_SINGLE_SEL, Wx::wxDefaultValidator, 'listbox_1');
+        #insert the HG data
+        chdir ($self->{hg}->{project_path});
+        my $hgdata = $self->{hg}->vcs_log($file, $self->{hg}->{project_path});
+        
+        $self->_populate_list( $hgdata);
+
+	
+
+
+	my $ok_button = Wx::Button->new($self, 
+						1,                  # id
+						"OK", # label
+						[50,50]             # position
+                                       );
+
+
+	#Handle the Button Clicks
+	
+        my $changeset;
+         
+	EVT_BUTTON( $ok_button, 
+             1,
+               sub{$changeset = $self->_get_selected_item();
+                $self->Close();
+                return $changeset;
+                  
+               }
+              );
+      
+    $sizer->Add($self->{list_box}, 1, Wx::wxEXPAND, 10);
+    $sizer2->Add($ok_button, 0, Wx::wxALL, 10);
+    $sizer->Add($sizer2, 0, Wx::wxEXPAND, 10);
+    $self->SetSizer($sizer);
+    $self->SetAutoLayout(1);
+    $self->ShowModal();
+    return $changeset;
+
+}
+
+
+sub _get_selected_item
+{
+	my( $self, $event ) = @_; 
+
+	# Change the contents of $self->{txt}
+	
+	my $changeset;
+	
+	my $item = -1;
+	 while ( 1 ==1 )
+	{
+        $item = $self->{list_box}->GetNextItem($item,
+                                     Wx::wxLIST_NEXT_ALL,
+                                     Wx::wxLIST_STATE_SELECTED);
+        if ( $item == -1 )
+        {
+            last;
+	}
+        # this item is selected - do whatever is needed with it
+        my $itemObj = $self->{list_box}->GetItem($item);
+        $changeset .= $itemObj->GetText();
+       
+    }
+    $changeset =~ s/^.*://;
+     return $changeset;    
+ }
+
+sub _populate_list
+{
+ my ($self, $log) = @_;
+ my @commits = $self->{hg}->parse_log($log);
+ 
+ if (!$log) {return}
+ #build the list headers
+ $self->{list_box}->InsertColumn(0,'changeset');
+ $self->{list_box}->InsertColumn(1,'user');
+ $self->{list_box}->InsertColumn(2,'date');
+ $self->{list_box}->InsertColumn(3,'summary');
+ 
+ for (my $i = (scalar(@commits)-1); $i >= 0; $i--)
+  {
+	
+	my $item = $self->{list_box}->InsertStringItem(0,$commits[$i]->{changeset});
+	$self->{list_box}->SetItem($item,1, $commits[$i]->{user});
+	$self->{list_box}->SetItem($item,2, $commits[$i]->{date});
+	$self->{list_box}->SetItem($item,3, $commits[$i]->{summary});
+	
+ }	
+	
+}
+
+