-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GetStashes / GetRefLog #2
Conversation
@jairbubbles It's wonderful! Thanks for your contribution! |
@kekyo I updated the code to also allow to get RefLog on any reference. To allow this I change a bit A few other notes:
|
@jairbubbles Thanks for the continued improvements! I will answer a few questions:
I knew of this package, but had avoided it, but since you suggested it, I checked out a bit of the contents.
We are creating a library component that is (supposed to be) the bottom line. That is to say, not the projects that make up the release product, such as the ASP.NET web project, its middleware, or the GUI application project. A library component project may be referenced in an environment with assumptions that we may not have imagined when we were creating this. Therefore:
I believe it is extremely important. In my paid work, this has often caused me to be unable to work with the library, to give up on very important functionality, or to spend a lot of time on non-essential implementation to get around constraints. A simple and familiar example is Also, in my local community, I often see people who have not migrated to the latest platforms and technologies, and are simply clinging to "Windows Forms". Yes, they continue to use .NET Framework 3.5 and do not even migrate to .NET Framework 4. It would be easy to say that is stupid, but the applications they have realized are uniquely cool and have forced me to change my mind. If we force such a project to migrate to the latest technology, we will probably kill a great ideas and projects. Or it may go to a completely different technology and never come back to .NET eco systems. Back to the point, not just this GitReader, but most of my projects (the majority of which are library components) have been relentless in their support of them. As long as this is not going to follow Microsoft's guidance (which I just learned for the first time :) It turns out that the As for the To compensate for this, GitReader takes care to continue to use the data once read as a preload buffer as much as possible, and to avoid asynchronous state transitions as much as possible (some inline code looks quite useless). |
Sure I understand but I see two different things:
I feel like you could simplify a lot by targeting something like |
Thanks for your contribution, will review as soon as I can!
Your questions are valid. Regarding the latter, including many platforms will reduce the number of library files included in the final built binary. For example, suppose we release a package that contains only If one believes NuGet and Roslyn, then the resolution of these dependencies should have been done correctly, and I have no objection to the increase in required files. However, in my experience, I have frequently experienced dependency resolution failures in minor non-.NET Core environments such as UWP, Xamarin Forms and Unity that are not humanly understandable. Or sometimes, early Whether this was a problem with the build environment, NuGet failing to resolve a complex version, a package creation error, or something else was too time consuming to analyze and I gave up trying to identify the problem. I don't have that much in-depth knowledge of TFM or NuGet package versioning, but it seems to me that the average developer probably doesn't even know where the problem is and would not even recognize that this is caused by a complex versioning problem with TFM. To return to the point, if the number of library files included in the final product is small (which is difficult to do in practice), the problem area can be reduced if trouble does occur. In some cases, simply examining the version of each file may provide some insight, or simply looking at it in ILSpy may solve the problem. As I mentioned in my previous message, this is only an idea because it is a library component project, and as we move up the hierarchy of the application architecture, we will need to focus less and less on such issues, and conversely, it may well be possible to fix the target altogether. On the other hand, it is conceivable to fix the target completely. Weigh that against supporting, say, |
You're totally right! That's why I was proposing to keep
For the .NET Core era, it's a bit different, If you don't you should only target |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Found some minor integration point. No problem, It would be faster for me to fix those, so I will modify them here.
@jairbubbles Thank you again, I am sorry for my selfishness. In my discussion with you, I realized that I fundamentally do not trust the package version resolution mechanism of NuGet/.NET. That is an idea that comes from my practical experience, and I am confident that your previous points are well understood and not wrong! On that note, maybe I'm not talking anywhere near you, but I'm a big fan of Sam Fisher and I fight it daily on Aurora Island, New York City and Washington DC. Thanks for the great experience! |
🥳
Nuget has some subtleties but the TFM resolution is very simple. Apart from the .NET Standard mess , I have not been hit by any issues.
I have little to do in those but Breakpoint is the last game I directly worked on! |
Hi @kekyo, I quickly look into adding stash support. Let me know what you think.
Stashes share the same structure than the ref log so we might keep the code / primitive structure in common.
Parsing code from libgit2 can be found here: https://github.com/libgit2/libgit2/blob/9d41a3fd694d983ade53fb602a58f6df25ce0656/src/libgit2/refdb_fs.c#L1938
NB: It would be better not to use Split / SubString to avoid allocations.