Chris2011 commented on code in PR #8922:
URL: https://github.com/apache/netbeans/pull/8922#discussion_r2653642298
##########
ide/git/src/org/netbeans/modules/git/ui/fetch/PullAction.java:
##########
@@ -182,55 +189,71 @@ protected void perform () {
return;
}
}
- GitUtils.runWithoutIndexing(new Callable<Void>() {
- @Override
- public Void call () throws Exception {
- for (String branch : toDelete) {
- client.deleteBranch(branch, true,
getProgressMonitor());
-
getLogger().outputLine(Bundle.MSG_PullAction_branchDeleted(branch));
- }
- setDisplayName(Bundle.MSG_PullAction_fetching());
- Map<String, GitTransportUpdate> fetchResult =
FetchAction.fetchRepeatedly(
- client, getProgressMonitor(), target,
fetchRefSpecs);
- if (isCanceled()) {
- return null;
+ GitUtils.runWithoutIndexing(() -> {
+ for (String branch : toDelete) {
+ client.deleteBranch(branch, true,
getProgressMonitor());
+
getLogger().outputLine(Bundle.MSG_PullAction_branchDeleted(branch));
+ }
+ setDisplayName(Bundle.MSG_PullAction_fetching());
+ Map<String, GitTransportUpdate> fetchResult =
FetchAction.fetchRepeatedly(
+ client, getProgressMonitor(), target, fetchRefSpecs);
+ if (isCanceled()) {
+ return null;
+ }
+ FetchUtils.log(repository, fetchResult, getLogger());
+ if (!isCanceled()) {
+
setDisplayName(Bundle.MSG_PullAction_progress_syncBranches());
+ FetchUtils.syncTrackingBranches(repository,
fetchResult, GitProgressSupportImpl.this,
GitProgressSupportImpl.this.getProgress(), false);
+ }
+ if (isCanceled() || branchToMerge == null) {
+ return null;
+ }
+ new BranchSynchronizer(branchToMerge, repository, new
BranchSynchronizer.GitProgressSupportDelegate() {
+
+ @Override
+ public GitClient getClient () throws GitException {
+ return client;
}
- FetchUtils.log(repository, fetchResult, getLogger());
- if (!isCanceled()) {
-
setDisplayName(Bundle.MSG_PullAction_progress_syncBranches());
- FetchUtils.syncTrackingBranches(repository,
fetchResult, GitProgressSupportImpl.this,
GitProgressSupportImpl.this.getProgress(), false);
+
+ @Override
+ public OutputLogger getLogger () {
+ return GitProgressSupportImpl.this.getLogger();
}
- if (isCanceled() || branchToMerge == null) {
- return null;
+
+ @Override
+ public ProgressDelegate getProgress () {
+ return GitProgressSupportImpl.this.getProgress();
}
- new BranchSynchronizer(branchToMerge, repository, new
BranchSynchronizer.GitProgressSupportDelegate() {
-
- @Override
- public GitClient getClient () throws GitException {
- return client;
- }
-
- @Override
- public OutputLogger getLogger () {
- return GitProgressSupportImpl.this.getLogger();
- }
-
- @Override
- public ProgressDelegate getProgress () {
- return
GitProgressSupportImpl.this.getProgress();
- }
-
- }).execute();
- return null;
+
+ }).execute();
+
+ if (!isCanceled()) {
+ pullSuccessful = true;
}
- }, repository);
+
+ return null;
+ }, repository);
} catch (GitException ex) {
setError(true);
GitClientExceptionHandler.notifyException(ex, true);
} finally {
setDisplayName(NbBundle.getMessage(GitAction.class,
"LBL_Progress.RefreshingStatuses")); //NOI18N
Git.getInstance().getFileStatusCache().refreshAllRoots(Collections.<File,
Collection<File>>singletonMap(repository,
Git.getInstance().getSeenRoots(repository)));
GitUtils.headChanged(repository);
+
+ // Check if tracking should be set up after successful pull
+ if (pullSuccessful && branchToMerge != null) {
+ RepositoryInfo info =
RepositoryInfo.getInstance(repository);
+ info.refresh();
+ GitBranch activeBranch = info.getActiveBranch();
+ if (activeBranch != null &&
activeBranch.getTrackedBranch() == null) {
+ // branchToMerge is the remote branch name (e.g.,
"origin/master")
+ if (shallSetupTracking(activeBranch, branchToMerge)) {
+
SystemAction.get(SetTrackingAction.class).setupTrackedBranchImmediately(
+ repository, activeBranch.getName(),
branchToMerge);
+ }
+ }
Review Comment:
It could be, that runWithoutindexing is not part here, but I set breakpoints
and see, that only the finally block inside of the runWithoutIndexing is
executed, after this , no other finally block is reached. So the inner finally
block is reached, the outer not. This is why I'm confused. As said, my
assumption is something with different threads?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists