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

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.
Add a comment to this file

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});
+	
+ }	
+	
+}
+
+

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

 
 =head1 NAME
 
-Module::Name - My author was too lazy to write an abstract
+package Padre::Plugin::HG::ProjectClone 
+Displays the prompts for making a project clone.
 
 =head1 SYNOPSIS
 
-  my $object = Module::Name->new(
-      foo  => 'bar',
-      flag => 1,
-  );
+  my $object = Padre::Plugin::HG::ProjectClone->new();
   
-  $object->dummy;
+  thats it will display the prompts and call the clone method. 
 
 =head1 DESCRIPTION
 
-The author was too lazy to write a description.
+
 
 =head1 METHODS
 
 
 =head2 new
 
-  my $object = Module::Name->new(
-      foo => 'bar',
-  );
-
-The C<new> constructor lets you create a new B<Module::Install> object.
-
-So no big surprises there...
-
-Returns a new B<Module::Install> or dies on error.
+ create a new ProjectClone object. 
+ 
 
 =cut
 
     my ($class, $hg) = @_; 
     my $self       = $class->SUPER::new( Padre::Current->main);
     $self->{hg} = $hg;
-    $self->enter_repository();
-    if ($self->{project_url})
-    {
-        $self->choose_destination();
-        $self->clone();
-    }
-    
-    
     return $self;
 }
 
-sub clone
-{
-    my ($self) = @_;
-   if ($self->{project_url}  and $self->{selected_dir})
-   {
-         $self->{hg}->clone_project($self->{project_url},$self->{destination_dir}); 
-   }
-        
-    
-}
+
 
 sub enter_repository
 {
  my $main = Padre->ide->wx->main;
  my $message = $main->prompt("Clone Project", "Enter the Project URL to clone", 'http://');    
  $self->{project_url} = $message ; 
-    
+ return $message;
 }
 
 sub choose_destination
 {
     my ($self) = @_;
     my $dialog = Wx::DirDialog->new($self, 'Choose a Destination Directory');
-    $dialog->ShowModal();
-    $self->{destination_dir} = $dialog->GetPath();
+    my $choice = $dialog->ShowModal();
+    if ($choice == Wx::wxID_CANCEL)