Skip to content

Develop - #117

Merged
tiennou merged 69 commits into
gitx:masterfrom
tiennou:develop
Feb 25, 2018
Merged

tiennou merged 69 commits into
gitx:masterfrom
tiennou:develop

Conversation

@tiennou

@tiennou tiennou commented Feb 13, 2018

Copy link
Copy Markdown
Contributor

Sorry for the dull name.

This is the result of a few years worth of love low-level work on GitX innards. I'm now running that branch for the time being (I'll likely find bugs and squash them).

The plan is :

  • make sure it's not more buggy than it was (heh)
  • merge this in a few weeks
  • finish the release process tweaks (almost there)
  • enjoy our first release since a long time 🍻

Highlights are :

  • reworked task-management system (see PBTask)
  • finalized the separation of PBGitRepository from anything document-related.
  • reworked the sheets API

So if developers/users want to give a hand in testing, please give this a spin !

@gitx/core @ksuther @mangerlahn @muhqu

tiennou and others added 30 commits February 13, 2018 23:11
Task with lots of output would block when their pipe would get full. Drain our side of the pipe from time to time so the task can continue tasking.

Ref gitx#97
We might get the termination/completion notification before we actually had a chance to read anything, so we would reallocate `standardOutputData` under the readability handler.
@ksuther

ksuther commented Feb 14, 2018

Copy link
Copy Markdown
Contributor

Thank you for all the updates!

I'm now running this with @mangerlahn's branch merged in (it merged cleanly other than stray xcodeproj and xib conflicts).

I'd suggest moving to the latest ObjectiveGit in this branch as well. The current version of ObjectiveGit/libgit2 that gitx is depending on is pretty old and has some problems that results in poor performance on repositories with lots of submodules (libgit2/libgit2#4016).

@aharrison24

Copy link
Copy Markdown

I'm trying out the develop branch now. Just had it crash when I tried to perform a push from the UI. The push seems to have happened, but GitX crashed immediately after. Here's the error report:
https://gist.github.com/aharrison24/713ab5aac9f9eb5e6bfd1de2368d78ed

Key piece of info appears to be:

*** Terminating app due to uncaught exception 'WebKitThreadingException', reason: '-[WebView windowScriptObject] was called from a secondary thread'
terminating with uncaught exception of type NSException
abort() called

@ksuther

ksuther commented Feb 14, 2018

Copy link
Copy Markdown
Contributor

PBTask throws an exception when trying to discard changes to a file. It looks like NSPipe doesn't allow calling offsetInFile on its file handle.

*** -[NSConcreteFileHandle offsetInFile]: Illegal seek
(null)
* thread #32, queue = 'com.apple.NSFileHandle.fd_monitoring', stop reason = breakpoint 1.1
    frame #0: 0x00007fff7b35cc46 libobjc.A.dylib`objc_exception_throw
    frame #1: 0x00007fff5474c9ed CoreFoundation`+[NSException raise:format:] + 205
    frame #2: 0x00007fff5679ecbf Foundation`-[NSConcreteFileHandle offsetInFile] + 78
  * frame #3: 0x00000001000f4291 GitX`__48-[PBTask performTaskOnQueue:terminationHandler:]_block_invoke.157(.block_descriptor=<unavailable>, handle=0x000060c0005f6d40) at PBTask.m:149
    frame #4: 0x00007fff5682af68 Foundation`__33-[NSConcreteFileHandle _monitor:]_block_invoke + 50
    frame #5: 0x000000010037a692 libclang_rt.asan_osx_dynamic.dylib`__wrap_dispatch_source_set_event_handler_block_invoke + 290
    frame #6: 0x00000001017f8d1f libdispatch.dylib`_dispatch_client_callout + 8
    frame #7: 0x000000010180d3c3 libdispatch.dylib`_dispatch_continuation_pop + 940
    frame #8: 0x00000001017fb41a libdispatch.dylib`_dispatch_source_invoke + 658
    frame #9: 0x000000010180e8c4 libdispatch.dylib`_dispatch_queue_serial_drain + 425
    frame #10: 0x0000000101800790 libdispatch.dylib`_dispatch_queue_invoke + 322
    frame #11: 0x000000010180ffbb libdispatch.dylib`_dispatch_root_queue_drain_deferred_wlh + 785
    frame #12: 0x0000000101814e94 libdispatch.dylib`_dispatch_workloop_worker_thread + 892
    frame #13: 0x000000010187502b libsystem_pthread.dylib`_pthread_wqthread + 980
    frame #14: 0x0000000101874c45 libsystem_pthread.dylib`start_wqthread + 13

This is a stop-gap measure: calling -reloadRefs from a background queue wrecks the KVO system because we're doing weird things with our notifications when reloading references.
@tiennou

tiennou commented Feb 21, 2018

Copy link
Copy Markdown
Contributor Author

Heads-up ! Those two issues should be gone now (first 2 commits above). I've also reworked the error reporting so we get (hopefully) nicer error messages when tasks fail.

@ksuther

ksuther commented Feb 21, 2018

Copy link
Copy Markdown
Contributor

Discard changes is working again. Another regression that I found: Commit hooks aren't working. I have a pre-commit and commit-msg hook and no warning appears anymore when they fail. I haven't had a chance to debug it myself yet.

@tiennou
tiennou merged commit 1ec4f02 into gitx:master Feb 25, 2018
@tiennou

tiennou commented Feb 25, 2018

Copy link
Copy Markdown
Contributor Author

I'm merging, just because I find it cumbersome to follow too much branches.

The issues you (various) reported should all be fixed, so if you find that something is not working, please open an issue (for real this time).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants