public void CanUpdateSubmodule()
        {
            var    path          = SandboxSubmoduleSmallTestRepo();
            string submoduleName = "submodule_target_wd";

            using (var repo = new Repository(path))
            {
                var submodule = repo.Submodules[submoduleName];

                Assert.NotNull(submodule);
                Assert.True(submodule.RetrieveStatus().HasFlag(SubmoduleStatus.WorkDirUninitialized));

                bool checkoutProgressCalled = false;
                bool checkoutNotifyCalled   = false;
                bool updateTipsCalled       = false;
                var  options = new SubmoduleUpdateOptions()
                {
                    OnCheckoutProgress  = (x, y, z) => checkoutProgressCalled = true,
                    OnCheckoutNotify    = (x, y) => { checkoutNotifyCalled = true; return(true); },
                    CheckoutNotifyFlags = CheckoutNotifyFlags.Updated,
                    OnUpdateTips        = (x, y, z) => { updateTipsCalled = true; return(true); },
                };

                repo.Submodules.Init(submodule.Name, false);
                repo.Submodules.Update(submodule.Name, options);

                Assert.True(submodule.RetrieveStatus().HasFlag(SubmoduleStatus.InWorkDir));
                Assert.True(checkoutProgressCalled);
                Assert.True(checkoutNotifyCalled);
                Assert.True(updateTipsCalled);
                Assert.Equal((ObjectId)"480095882d281ed676fe5b863569520e54a7d5c0", submodule.HeadCommitId);
                Assert.Equal((ObjectId)"480095882d281ed676fe5b863569520e54a7d5c0", submodule.IndexCommitId);
                Assert.Equal((ObjectId)"480095882d281ed676fe5b863569520e54a7d5c0", submodule.WorkDirCommitId);
            }
        }
 protected override void OnEnable()
 {
     options = new SubmoduleUpdateOptions()
     {
         CredentialsProvider         = CredentialsHandler,
         OnProgress                  = FetchProgress,
         RepositoryOperationStarting = FetchOperationStarting
     };
     base.OnEnable();
 }
Exemplo n.º 3
0
        public void UpdateSubmodules()
        {
            var submoduleUpdate = new SubmoduleUpdateOptions
            {
                CredentialsProvider = getCredentialsHandler(),
                Init = true
            };

            loadRepo();
            foreach (var module in repo.Submodules)
            {
                repo.Submodules.Update(module.Name, submoduleUpdate);
            }
        }