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(); }
public void UpdateSubmodules() { var submoduleUpdate = new SubmoduleUpdateOptions { CredentialsProvider = getCredentialsHandler(), Init = true }; loadRepo(); foreach (var module in repo.Submodules) { repo.Submodules.Update(module.Name, submoduleUpdate); } }