xcelled / firebolt Goto Github PK
View Code? Open in Web Editor NEWA massively parallel replacement for git filter-branch.
License: MIT License
A massively parallel replacement for git filter-branch.
License: MIT License
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.