{"thread":{"id":"10906","subject":"[Advance Warning PATCH] Move gitk to its own subdirectory","startedAt":"2007-11-17T19:15:20Z","lastAt":"2007-11-18T01:18:40Z","messageCount":3,"participants":["Junio C Hamano","Alex Riesen"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"60159","messageId":"7vsl34u1iv.fsf@gitster.siamese.dyndns.org","threadId":"10906","inReplyTo":null,"subject":"[Advance Warning PATCH] Move gitk to its own subdirectory","fromName":"Junio C Hamano","fromEmail":"junio@pobox.com","sentAt":"2007-11-17T19:15:20Z","receivedAt":"2007-11-17T19:15:20Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"As some people may be aware, i18n effort for gitk has been\ndiscussed and one requirement for that is to have separate\nMakefile, or at least separate Makefile entries, to manage\nmessage source files and rules to build and install them.\n\nThe plan is to stop merging gitk.git as a single file project\ninto git.git but instead use the subtree merge strategy into its\nown subdirectory of git.git.  We can use subproject support in\nthe future, but once _a_ subproject is used that means the\nproject's history is not pullable with subproject unaware\nversions of git anymore, so I'd avoid it for now.\n\nThis patch is just a preview to see reations from the list when\nsuch a transtion should be made.  Earlier I mumbled \"Let's slow\ndown for 1.5.4 freeze\" on the list, but it seems that we do not\nsee -rc0 near the horizon yet.  I think transitions like this\nshould better be done sooner rather than later.\n\nThe mock gitk-git/Makefile entries in the following patch is\nvery minimum, and will need to be replaced with the real one\nthat we pull from Paul's gitk.git repository, along with the\ni18n and any other goodies gitk.git will have.\n\n-- >8 --\nThis is to prepare for gitk i18n effort that makes gitk not a single file\nproject anymore.  We may use subproject to bind git.git and gitk.git more\nloosely in the future, but we do not want to require everybody to have\nsubproject aware git to be able to pull from git.git yet.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n Makefile              |   14 +++-----------\n gitk-git/Makefile     |   29 +++++++++++++++++++++++++++++\n gitk => gitk-git/gitk |    0 \n 3 files changed, 32 insertions(+), 11 deletions(-)\n create mode 100644 gitk-git/Makefile\n rename gitk => gitk-git/gitk (100%)\n mode change 100755 => 100644\n\ndiff --git a/Makefile b/Makefile\nindex e830bc7..8110d36 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -270,9 +270,6 @@ ALL_PROGRAMS += git-merge-subtree$X\n \n # what 'all' will build but not install in gitexecdir\n OTHER_PROGRAMS = git$X gitweb/gitweb.cgi\n-ifndef NO_TCLTK\n-OTHER_PROGRAMS += gitk-wish\n-endif\n \n # Set paths to tools early so that they can be used for version tests.\n ifndef SHELL_PATH\n@@ -773,6 +770,7 @@ endif\n all::\n ifndef NO_TCLTK\n \t$(QUIET_SUBDIR0)git-gui $(QUIET_SUBDIR1) all\n+\t$(QUIET_SUBDIR0)gitk-git $(QUIET_SUBDIR1) all\n endif\n \t$(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' all\n \t$(QUIET_SUBDIR0)templates $(QUIET_SUBDIR1)\n@@ -780,12 +778,6 @@ endif\n strip: $(PROGRAMS) git$X\n \t$(STRIP) $(STRIP_OPTS) $(PROGRAMS) git$X\n \n-gitk-wish: gitk GIT-GUI-VARS\n-\t$(QUIET_GEN)$(RM) $@ $@+ && \\\n-\tsed -e '1,3s|^exec .* \"$$0\"|exec $(subst |,'\\|',$(TCLTK_PATH_SQ)) \"$$0\"|' <gitk >$@+ && \\\n-\tchmod +x $@+ && \\\n-\tmv -f $@+ $@\n-\n git.o: git.c common-cmds.h GIT-CFLAGS\n \t$(QUIET_CC)$(CC) -DGIT_VERSION='\"$(GIT_VERSION)\"' \\\n \t\t$(ALL_CFLAGS) -c $(filter %.c,$^)\n@@ -1026,7 +1018,7 @@ install: all\n \t$(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install\n \t$(MAKE) -C perl prefix='$(prefix_SQ)' install\n ifndef NO_TCLTK\n-\t$(INSTALL) gitk-wish '$(DESTDIR_SQ)$(bindir_SQ)'/gitk\n+\t$(MAKE) -C gitk-git install\n \t$(MAKE) -C git-gui install\n endif\n \tif test 'z$(bindir_SQ)' != 'z$(gitexecdir_SQ)'; \\\n@@ -1119,7 +1111,7 @@ clean:\n \t$(MAKE) -C templates/ clean\n \t$(MAKE) -C t/ clean\n ifndef NO_TCLTK\n-\t$(RM) gitk-wish\n+\t$(MAKE) -C gitk-git clean\n \t$(MAKE) -C git-gui clean\n endif\n \t$(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-GUI-VARS\ndiff --git a/gitk-git/Makefile b/gitk-git/Makefile\nnew file mode 100644\nindex 0000000..9bc1e24\n--- /dev/null\n+++ b/gitk-git/Makefile\n@@ -0,0 +1,29 @@\n+# The default target of this Makefile is...\n+all::\n+\n+prefix ?= $(HOME)\n+bindir ?= $(prefix)/bin\n+TCLTK_PATH ?= wish\n+INSTALL ?= install\n+RM ?= rm -f\n+\n+DESTDIR_SQ = $(subst ','\\'',$(DESTDIR))\n+bindir_SQ = $(subst ','\\'',$(bindir))\n+TCLTK_PATH_SQ = $(subst ','\\'',$(TCLTK_PATH))\n+\n+ifndef V\n+\tQUIET          = @\n+\tQUIET_GEN      = $(QUIET)echo '   ' GEN $@ &&\n+endif\n+\n+all:: gitk-wish\n+install:: all\n+\t$(INSTALL) gitk-wish '$(DESTDIR_SQ)$(bindir_SQ)'/gitk\n+clean::\n+\t$(RM) gitk-wish\n+\n+gitk-wish: gitk\n+\t$(QUIET_GEN)$(RM) $@ $@+ && \\\n+\tsed -e '1,3s|^exec .* \"$$0\"|exec $(subst |,'\\|',$(TCLTK_PATH_SQ)) \"$$0\"|' <gitk >$@+ && \\\n+\tchmod +x $@+ && \\\n+\tmv -f $@+ $@\ndiff --git a/gitk b/gitk-git/gitk\nold mode 100755\nnew mode 100644\nsimilarity index 100%\nrename from gitk\nrename to gitk-git/gitk\n-- \n1.5.3.5.1806.g3e393\n"},{"id":"60182","messageId":"20071117232519.GA7664@steel.home","threadId":"10906","inReplyTo":"7vsl34u1iv.fsf@gitster.siamese.dyndns.org","subject":"Re: [Advance Warning PATCH] Move gitk to its own subdirectory","fromName":"Alex Riesen","fromEmail":"raa.lkml@gmail.com","sentAt":"2007-11-17T23:25:19Z","receivedAt":"2007-11-17T23:25:19Z","isPatch":true,"sender":{"key":"raa.lkml@gmail.com","avatar":"https://avatars.githubusercontent.com/u/324101?v=4"},"body":"Junio C Hamano, Sat, Nov 17, 2007 20:15:20 +0100:\n> The plan is to stop merging gitk.git as a single file project\n> into git.git but instead use the subtree merge strategy into its\n> own subdirectory of git.git.  We can use subproject support in\n> the future, but once _a_ subproject is used that means the\n> project's history is not pullable with subproject unaware\n> versions of git anymore, so I'd avoid it for now.\n\nYou made it part of \"all\" target, which we will have to change if gitk\nis to become a subproject: Makefile better handle absence of the\nMakefile under gitk-git, and continue build.\n\n> Signed-off-by: Junio C Hamano <gitster@pobox.com>\n> ---\n>  Makefile              |   14 +++-----------\n>  gitk-git/Makefile     |   29 +++++++++++++++++++++++++++++\n>  gitk => gitk-git/gitk |    0 \n>  3 files changed, 32 insertions(+), 11 deletions(-)\n>  create mode 100644 gitk-git/Makefile\n>  rename gitk => gitk-git/gitk (100%)\n>  mode change 100755 => 100644\n...\n>  all::\n>  ifndef NO_TCLTK\n>  \t$(QUIET_SUBDIR0)git-gui $(QUIET_SUBDIR1) all\n> +\t$(QUIET_SUBDIR0)gitk-git $(QUIET_SUBDIR1) all\n\nmaybe \"git-gitk\" instead of \"gitk-git\"? As \"git-gui\" and \"gitweb\"...\nMaybe even shorter: \"gui\", \"web\" and \"k\" :)\n"},{"id":"60194","messageId":"7vabpcz6z3.fsf@gitster.siamese.dyndns.org","threadId":"10906","inReplyTo":"20071117232519.GA7664@steel.home","subject":"Re: [Advance Warning PATCH] Move gitk to its own subdirectory","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-11-18T01:18:40Z","receivedAt":"2007-11-18T01:18:40Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Alex Riesen <raa.lkml@gmail.com> writes:\n\n> You made it part of \"all\" target, which we will have to change if gitk\n> is to become a subproject: Makefile better handle absence of the\n> Makefile under gitk-git, and continue build.\n\nNot necessarily.\n\nThe policy is completely up to the superproject (which is\ngit.git).  Currently, the policy is \"make all\" and \"make\ninstall\" in git.git builds and installs what are considered core\nparts of the system which includes git-gui and gitk.\n\ngitk nor git-gui should not become useless without being in\ngit.git (iow, their build procedure better not depend on things\noutside their subtree), but I do not think that is a hard\nrequirement either.  Shawn *chose* to keep git-gui buildable and\ninstallable separately as well as as part of git.git.  Again I\nthink that policy is up to individual subprojects.\n"}]}