Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Discrepancy in events raised by RepositoryWatcher #421

@StanleyGoldman

Description

@StanleyGoldman

On some workstations the action of git commit is producing a different output in the RepositoryWatcher.
Executing the integration test ShouldAddAndCommitAllFiles from #418 demonstrates the issue more closely.

Workstations seem consistent in their ability to reproduce the issue or not.
I have one workstation where this works and one where it does not.

This log shows what we expect:

17:52:20.600 PM TRACE [ 9] <GitClient> Add all files
17:52:20.609 PM TRACE [ 9] <GitClient> Commit
17:52:20.625 PM TRACE [15] <RepositoryManager> IsBusyChanged Value:True
17:52:20.633 PM TRACE [15] <IRepositoryManagerListener> OnIsBusyChanged: True
17:52:20.777 PM TRACE [15] <RepositoryManager> IsBusyChanged Value:False
17:52:20.783 PM TRACE [15] <IRepositoryManagerListener> OnIsBusyChanged: False
17:52:20.789 PM TRACE [15] <RepositoryWatcher> Handling 57 Events
17:52:20.800 PM TRACE [15] <RepositoryWatcher> IndexChanged
17:52:20.806 PM TRACE [15] <RepositoryWatcher> LocalBranchChanged: master
17:52:20.812 PM TRACE [15] <IRepositoryManagerListener> OnLocalBranchUpdated Name:master
17:52:20.817 PM TRACE [15] <RepositoryWatcher> Processed 2 Events
17:52:20.831 PM TRACE [ 4] <RepositoryManager> Stop
17:52:20.839 PM TRACE [ 4] <RepositoryWatcher> Stopping watcher
17:52:20.845 PM TRACE [ 4] <RepositoryManager> Stop
17:52:20.852 PM WARN [ 4] <RepositoryWatcher> Watcher already stopped
17:52:20.859 PM WARN [ 4] <RepositoryWatcher> Watcher already stopped

In error scenarios this is what we receive:

18:34:55.346 PM TRACE [ 9] <GitClient> Add all files
18:34:55.355 PM TRACE [ 9] <GitClient> Commit
18:34:55.368 PM TRACE [15] <RepositoryManager> IsBusyChanged Value:True
18:34:55.377 PM TRACE [15] <IRepositoryManagerListener> OnIsBusyChanged: True
18:34:55.576 PM TRACE [15] <RepositoryManager> IsBusyChanged Value:False
18:34:55.580 PM TRACE [15] <IRepositoryManagerListener> OnIsBusyChanged: False
18:34:55.586 PM TRACE [15] <RepositoryWatcher> Handling 62 Events
18:34:55.594 PM TRACE [15] <RepositoryWatcher> IndexChanged
18:34:55.598 PM TRACE [15] <RepositoryWatcher> LocalBranchCreated: master
18:34:55.604 PM TRACE [15] <IRepositoryManagerListener> OnLocalBranchAdded Name:master
18:34:55.608 PM TRACE [15] <RepositoryWatcher> LocalBranchDeleted: master
18:34:55.613 PM TRACE [15] <IRepositoryManagerListener> OnLocalBranchRemoved Name:master
18:34:55.617 PM TRACE [15] <RepositoryWatcher> Processed 3 Events
18:34:55.658 PM TRACE [ 4] <RepositoryManager> Stop
18:34:55.664 PM TRACE [ 4] <RepositoryWatcher> Stopping watcher
18:34:55.674 PM TRACE [ 4] <RepositoryManager> Stop
18:34:55.683 PM WARN [ 4] <RepositoryWatcher> Watcher already stopped
18:34:55.689 PM WARN [ 4] <RepositoryWatcher> Watcher already stopped

This issue existed before the batching changes made to the FileWatcher.

https://ci.appveyor.com/project/github-windows/unity/build/1912.releases/0.21/artifacts

170921-16:51:09 TRACE [ 7] <GitClient>                         Add all files
170921-16:51:09 TRACE [ 7] <GitClient>                         Commit
170921-16:51:09 TRACE [15] <RepositoryManager>                 IsBusyChanged Value:True
170921-16:51:09 TRACE [15] <IRepositoryManagerListener>        OnIsBusyChanged: True
170921-16:51:09 TRACE [15] <RepositoryManager>                 IsBusyChanged Value:False
170921-16:51:09 TRACE [15] <IRepositoryManagerListener>        OnIsBusyChanged: False
170921-16:51:09 TRACE [15] <RepositoryWatcher>                 Handling 55 Events
170921-16:51:09 TRACE [15] <RepositoryWatcher>                 LocalBranchChanged: master
170921-16:51:09 TRACE [15] <RepositoryManager>                 Updating Git Status
170921-16:51:09 TRACE [15] <GitClient>                         Status
170921-16:51:09 TRACE [15] <RepositoryWatcher>                 IndexChanged
170921-16:51:09 TRACE [15] <RepositoryWatcher>                 Processed 2 Events
170921-16:51:09 TRACE [ 7] <RepositoryManager>                 Stop
170921-16:51:09 TRACE [ 7] <RepositoryWatcher>                 Stopping watcher
170921-16:51:09 TRACE [ 7] <RepositoryManager>                 Stop
170921-16:51:09  WARN [ 7] <RepositoryWatcher>                 Watcher already stopped
170921-16:51:09  WARN [ 7] <RepositoryWatcher>                 Watcher already stopped

Running the same integration test from 0.21 locally results in the following

18:50:28.474 PM TRACE [ 4] <GitClient> Add all files
18:50:28.483 PM TRACE [ 4] <GitClient> Commit
18:50:28.492 PM TRACE [11] <RepositoryManager> IsBusyChanged Value:True
18:50:28.497 PM TRACE [11] <IRepositoryManagerListener> OnIsBusyChanged: True
18:50:28.767 PM TRACE [11] <RepositoryManager> IsBusyChanged Value:False
18:50:28.772 PM TRACE [11] <IRepositoryManagerListener> OnIsBusyChanged: False
18:50:28.782 PM TRACE [11] <RepositoryWatcher> Handling 62 Events
18:50:28.789 PM TRACE [11] <RepositoryWatcher> LocalBranchDeleted: master
18:50:28.796 PM TRACE [11] <IRepositoryManagerListener> OnLocalBranchListChanged
18:50:28.803 PM TRACE [11] <RepositoryWatcher> LocalBranchCreated: master
18:50:28.822 PM TRACE [11] <IRepositoryManagerListener> OnLocalBranchListChanged
18:50:28.828 PM TRACE [11] <RepositoryWatcher> IndexChanged
18:50:28.834 PM TRACE [11] <RepositoryWatcher> Processed 3 Events
18:50:28.871 PM TRACE [ 4] <RepositoryManager> Stop
18:50:28.877 PM TRACE [ 4] <RepositoryWatcher> Stopping watcher
18:50:28.884 PM TRACE [ 4] <RepositoryManager> Stop
18:50:28.890 PM WARN [ 4] <RepositoryWatcher> Watcher already stopped
18:50:28.895 PM WARN [ 4] <RepositoryWatcher> Watcher already stopped

Due to the chain of events that follow the ChangesView does not refresh after a git commit and the branch master disappears.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions