-
Notifications
You must be signed in to change notification settings - Fork 0
Description
This may be a challenging starting point, as I am not a C Sharp programmer. Nor do I have a Windows machine to run this on. My environment is Mono (version 5.0.1.1) on a Mac (macos 10.11.6).
Let me first set the stage for how I get to the problem at hand. I have a repository with way too many merge commits, and when I want to split out parts of the repository I use git filter-branch with --prune-empty only to find that I'm left with about 20 merge commits for every commit with actual changes. So I started looking around, and found this project. Thanks for publishing, it seems this is the only project trying to deal with such issues. Much appreciated.
Now for the problem. I download the release and try to run it:
mono /path/to/Firebolt.exe --prune-empty-merges master
Only to get an error:
The following options were not recognized and will be passed to git:
master
Finding refs to rewrite... 1 (refs/heads/master)
Listing commits to rewrite...30722
Rewriting...
* Assertion at mono-error.c:761, condition `!is_boxed ((MonoErrorInternal*)target_error)' not met
Stacktrace:
at <unknown> <0xffffffff>
at (wrapper managed-to-native) System.Threading.ThreadPool.PostQueuedCompletionStatus (System.Threading.NativeOverlapped*) [0x00000] in <acc111defcae454692c163a6e6c82ede>:0
at System.Threading.ThreadPool.UnsafeQueueNativeOverlapped (System.Threading.NativeOverlapped*) [0x00000] in <acc111defcae454692c163a6e6c82ede>:0
at System.Threading.Tasks.Schedulers.IOTaskScheduler.QueueTask (System.Threading.Tasks.Task) [0x00029] in <b2e515a4d05f4a45aaeca61828e43758>:0
at System.Threading.Tasks.TaskScheduler.InternalQueueTask (System.Threading.Tasks.Task) [0x00008] in <acc111defcae454692c163a6e6c82ede>:0
at System.Threading.Tasks.Task.ScheduleAndStart (bool) [0x00073] in <acc111defcae454692c163a6e6c82ede>:0
at System.Threading.Tasks.Task`1<TResult_REF>.StartNew (System.Threading.Tasks.Task,System.Func`1<TResult_REF>,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.InternalTaskOptions,System.Threading.Tasks.TaskScheduler,System.Threading.StackCrawlMark&) [0x00051] in <acc111defcae454692c163a6e6c82ede>:0
at System.Threading.Tasks.TaskFactory.StartNew<TResult_REF> (System.Func`1<TResult_REF>,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler) [0x00008] in <acc111defcae454692c163a6e6c82ede>:0
at Firebolt.Core.RewriteEngine.<Run>b__18_1 (string) [0x00019] in <1be3e7a5d27a4dedaf05dd105c745d59>:0
at System.Linq.Enumerable.ToDictionary<TSource_REF, TKey_REF, TElement_REF> (System.Collections.Generic.IEnumerable`1<TSource_REF>,System.Func`2<TSource_REF, TKey_REF>,System.Func`2<TSource_REF, TElement_REF>,System.Collections.Generic.IEqualityComparer`1<TKey_REF>) [0x00096] in <17b7ffded61b41618934d7c7b93897b2>:0
at System.Linq.Enumerable.ToDictionary<TSource_REF, TKey_REF, TElement_REF> (System.Collections.Generic.IEnumerable`1<TSource_REF>,System.Func`2<TSource_REF, TKey_REF>,System.Func`2<TSource_REF, TElement_REF>) [0x00000] in <17b7ffded61b41618934d7c7b93897b2>:0
at Firebolt.Core.RewriteEngine/<Run>d__18.MoveNext () [0x00020] in <1be3e7a5d27a4dedaf05dd105c745d59>:0
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<System.Collections.Generic.Dictionary`2<string, LibGit2Sharp.Commit>>.Start<Firebolt.Core.RewriteEngine/<Run>d__18> (Firebolt.Core.RewriteEngine/<Run>d__18&) [0x0002c] in <acc111defcae454692c163a6e6c82ede>:0
at Firebolt.Core.RewriteEngine.Run (System.Collections.Generic.IEnumerable`1<string>) [0x0002b] in <1be3e7a5d27a4dedaf05dd105c745d59>:0
at Firebolt.Firebolt.rewrite (System.Collections.Generic.ISet`1<string>,Firebolt.Core.Filters) [0x00038] in <8c3be459807c46a5a6050e2e887ba69f>:0
at Firebolt.Firebolt.Run () [0x00189] in <8c3be459807c46a5a6050e2e887ba69f>:0
at Firebolt.Program.Run (string[]) [0x0029a] in <8c3be459807c46a5a6050e2e887ba69f>:0
at Firebolt.Program.Main (string[]) [0x00000] in <8c3be459807c46a5a6050e2e887ba69f>:0
at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) [0x0004e] in <8c3be459807c46a5a6050e2e887ba69f>:0
So I figure, perhaps I can build this myself, get into the nuances of C Sharp and perhaps being able to contribute a fix. However when I try to compile the code with the Mono compiler (version 5.0.1.1) I get compile issues:
cd Firebolt.Core/
mcs *.cs
Extensions.cs(63,53): error CS1644: Feature `declaration expression' cannot be used because it is not part of the C# 6.0 language specification
Compilation failed: 1 error(s), 0 warnings
So, I'm at a loss. Anyhow I figured before I abandon the attempt at least I should file this ticket.