git clone from within pre-commit hook causes hook to fail





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







1















I have a pre-commit hook that needs to run a custom, in-house scanner on all committed files. This scanner is also maintained in its own git repo. So in the hook file I run git clone ... to make sure the latest version is being used. The problem I'm running into is that all git commands after the clone work on the cloned repo instead of the one for which the hook is running. As a result, I cannot get a list of updated files. Additionally, the hook always fails with:




error: invalid object...

error: Error building trees




Where the invalid object listed is from the cloned repo.



I've made sure I'm cloning into a completely different directory. I've also set the GIT_TRACE and GIT_TRACE_SETUP environment variables before committing. I can see that the git_dir, worktree and cwd values are all as I would expect them. They are set to the first repo initially, then to the cloned repo during the clone process, then back to the first repo after the clone completes.



As soon as I remove the git clone the hook runs without a hitch.



I'm running version 2.11.0 of git.



Why is the clone wreaking so much havoc and how can I prevent that?










share|improve this question





























    1















    I have a pre-commit hook that needs to run a custom, in-house scanner on all committed files. This scanner is also maintained in its own git repo. So in the hook file I run git clone ... to make sure the latest version is being used. The problem I'm running into is that all git commands after the clone work on the cloned repo instead of the one for which the hook is running. As a result, I cannot get a list of updated files. Additionally, the hook always fails with:




    error: invalid object...

    error: Error building trees




    Where the invalid object listed is from the cloned repo.



    I've made sure I'm cloning into a completely different directory. I've also set the GIT_TRACE and GIT_TRACE_SETUP environment variables before committing. I can see that the git_dir, worktree and cwd values are all as I would expect them. They are set to the first repo initially, then to the cloned repo during the clone process, then back to the first repo after the clone completes.



    As soon as I remove the git clone the hook runs without a hitch.



    I'm running version 2.11.0 of git.



    Why is the clone wreaking so much havoc and how can I prevent that?










    share|improve this question

























      1












      1








      1








      I have a pre-commit hook that needs to run a custom, in-house scanner on all committed files. This scanner is also maintained in its own git repo. So in the hook file I run git clone ... to make sure the latest version is being used. The problem I'm running into is that all git commands after the clone work on the cloned repo instead of the one for which the hook is running. As a result, I cannot get a list of updated files. Additionally, the hook always fails with:




      error: invalid object...

      error: Error building trees




      Where the invalid object listed is from the cloned repo.



      I've made sure I'm cloning into a completely different directory. I've also set the GIT_TRACE and GIT_TRACE_SETUP environment variables before committing. I can see that the git_dir, worktree and cwd values are all as I would expect them. They are set to the first repo initially, then to the cloned repo during the clone process, then back to the first repo after the clone completes.



      As soon as I remove the git clone the hook runs without a hitch.



      I'm running version 2.11.0 of git.



      Why is the clone wreaking so much havoc and how can I prevent that?










      share|improve this question














      I have a pre-commit hook that needs to run a custom, in-house scanner on all committed files. This scanner is also maintained in its own git repo. So in the hook file I run git clone ... to make sure the latest version is being used. The problem I'm running into is that all git commands after the clone work on the cloned repo instead of the one for which the hook is running. As a result, I cannot get a list of updated files. Additionally, the hook always fails with:




      error: invalid object...

      error: Error building trees




      Where the invalid object listed is from the cloned repo.



      I've made sure I'm cloning into a completely different directory. I've also set the GIT_TRACE and GIT_TRACE_SETUP environment variables before committing. I can see that the git_dir, worktree and cwd values are all as I would expect them. They are set to the first repo initially, then to the cloned repo during the clone process, then back to the first repo after the clone completes.



      As soon as I remove the git clone the hook runs without a hitch.



      I'm running version 2.11.0 of git.



      Why is the clone wreaking so much havoc and how can I prevent that?







      git






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 26 '18 at 16:49









      Michael AlbersMichael Albers

      3,26831626




      3,26831626
























          0






          active

          oldest

          votes












          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53485637%2fgit-clone-from-within-pre-commit-hook-causes-hook-to-fail%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53485637%2fgit-clone-from-within-pre-commit-hook-causes-hook-to-fail%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Tonle Sap (See)

          I get strange results when I access the Sqlitedatabase with Unity C# via XAMPP

          Guatemaltekische Davis-Cup-Mannschaft