hawq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Guo Gang <paul...@gmail.com>
Subject Replace git submodule with git clone + file with commit number?
Date Wed, 29 Jun 2016 10:18:18 GMT
I'm proposing this change because:

1) We are ready to release the first apache release with "source tarball",
    submodule is not friendly to source tarball since git submodule
   require a git parent.

2) With more and more development, I found that submodule mechanism
    is not that friendly for development, e.g.

    If the commit number of one submodule is modified, it is hard to detect
    this for Makefile. We need to manually update it in an old repo. If
    using "git clone", we could easily detect update by set a commit number
    as dependency and thus easily update the code.

   Some developers have complained the annoying output in "git status"
   after building submodules. With "git clone" we can easily mask those
   directories via .gitignore.

   It is hard for developers who is not familiar with submodule (Frankly
   I really do not think submodule is friendly) to manipulate related
   when necessary.

While with the "git clone" solution, we save the commit of previous
submodule in a file,
and the related Makefile code change is rather simple, e.g. for gp-xerces.

    rm -f $(ORCA_BLD_PATH)/gp-xerces_prepare_timestamp

gp-xerces_prepare: $(ORCA_BLD_PATH)/gp-xerces_prepare_timestamp
    if [ ! -f $(ORCA_BLD_PATH)/gp-xerces_prepare_timestamp ]; then \
        [ "x$(gp_xerces_commit)" != "x" ] || exit 1; \
        cd $(abs_top_srcdir)/$(subdir); mkdir -p gp-xerces; cd gp-xerces; \
        [ ! -d .git ] && git clone
https://github.com/greenplum-db/gp-xerces.git .; \
        git reset --hard $(gp_xerces_commit) || exit 2; \
        touch $(ORCA_BLD_PATH)/gp_xerces_prepare_timestamp; \

With above code change, if I update gp-xerces commit number in the commit
gp-xerces.commit make will trigger an auto-build, If I messed up the
gp-xerces directory
I can easily remove the whole gp-xerces, or just remove the timestamp file
gp-xerces_prepare_timestamp to trigger an auto build.

Any suggestion? Thanks.

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message