Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
77 user(s) are online (70 user(s) are browsing Forums)

Members: 1
Guests: 76

billyfish, more...

Support us!

Headlines

 
  Register To Post  

« 1 2 (3) 4 5 6 »
Re: updating sgit
Home away from home
Home away from home


See User information
@billyfish

Thanks for the update.

Quote:
So simplegit is a wrapper that calls libgit2 (https://libgit2.org/) for its actual git functionality. Now simplegit uses a fork of libgit2 (https://github.com/sba1/libgit2/tree/a ... e14a6487a3de17174ef9ac831) so to get the latest git functionality requires this being brought up to data as it is currently 1729 commits behond the main libgit repo. So consequently that is a lot of upstream changes to pull in and I was bracing myself as to how to go about this. If it can be brought up to date, then I would definitely make a pull request to get the amiga-specfic changes into the main tree so we don't have to go through this again.

Yes, having the Amiga-specific changes in the main repository would be great.

I hope you manage to find time soon to finish what you started.

Hans

Join Kea Campus' Amiga Corner and support Amiga content creation
https://keasigmadelta.com/ - see more of my work
Go to top
Re: updating sgit
Home away from home
Home away from home


See User information
@billyfish

Is there anything that can be done to help speed up progress?

Hans

Join Kea Campus' Amiga Corner and support Amiga content creation
https://keasigmadelta.com/ - see more of my work
Go to top
Re: updating sgit
Just popping in
Just popping in


See User information
@Hans

I'm open to ideas, no need for a bounty or anything like that. I've forked libgit2 to https://github.com/billyfish/libgit2/tree/amigaos4_port and a naive look at the src/unix and src/win32 folders might give a vague idea of what might be needed to give a similar src/amiga folder.

If this can be brought up to date, the simplegit part, which is the layer that sits on top of this library, should be much easier to bring up to date. In fact, using libgit2, a gui such as tortoisegit or gitkraken, might be achievable.

In terms of compiling libgit2, the first error is the lack of struct timespec, has anyone added functionality for this for any OS4 software yet? If I have to do similar to https://github.com/billyfish/libgit2/b ... /src/win32/win32-compat.h then that's fine, it's just seeing if I can use existing ports to get things moving quicker.

For simplegit itself, I think I can use Fredrik Wikstrom's work on SSHTerm to get the latest libssh2 code working.

I don't know if this even vaguely answers your question, but these are the various ideas I have circling my head.



Billy

Go to top
Re: updating sgit
Just popping in
Just popping in


See User information
Hi all


Ok I have built an initial version of simplegit using the latest libgit. No new features added yet, that will be the next stage. Is anyone willing to beta test this?

cheers

billy

Go to top
Re: updating sgit
Site Builder
Site Builder


See User information
@billyfish
That's great news. I would be glad to beta test it if you want.

Follow me on
Ko-fi, Twitter, YouTube, Twitch
Go to top
Re: updating sgit
Just popping in
Just popping in


See User information
@billyfish I would also be happy to beta test, I'm using sgit daily for my Amiga projects. Thanks for all the work you've done so far!


My Amiga blog: markround.com/amiga
My hardware: X5000 running OS4.1; A1200 Vampire V1200v2, KS 3.1.4
Go to top
Re: updating sgit
Just popping in
Just popping in


See User information
@Walkero and @mdr

Awesome! I'll set up a place to download the work in progress versions from. Unfortunately I spoke too soon about the updated version of libgit2 as it crashes in the posix layer bits (open, read, unlink, etc.) so I need to try and track these down. So I've updated the build code so I can build a version of simplegit that use the previous version as before (version 0.26.3) and another that uses the latest (1.0.0). I'm also trying to get the native build to work as it's a bit of a pain to keep building on my pc and copying the executeables across to my Amiga

billy

Go to top
Re: updating sgit
Just can't stay away
Just can't stay away


See User information
@billyfish

Cheers for updates :)

I keep hitting the diff problem with various projects. I change something in code, "sgit status" shows the changed file but "sgit diff" doesn't. Occasionally.

Sometimes it helps if I modify another file, then the changes in the actual file becomes visible :) Strange.

Go to top
Re: updating sgit
Just popping in
Just popping in


See User information
@billyfish

I would like to test as well :)

Go to top
Re: updating sgit
Just popping in
Just popping in


See User information
Hi all

Ok, I've updated simplegit to using the latest libgit2. As one of the major differences was how it now effectively has an API which mimics a lot of POSIX functions, I've moved the build to using clib2 rather than newlib as that's what the wiki.amigaos.net pages seem to recommend.

So a quick test of a status command on a repo appears to work ok, so it's a start

This is compiled with full debugging symbols and no optimzations, so don't expect it to be a speed demon, the optimizations can come later.

The command line options haven't changed as I want to make sure that the libgit2 functionality still all works ok before adding in the missing stuff. Once we're happy it's stable, I'll submit a pull request to the libgit2 repo so staying up to date in future should be a lot easier.

I've put it on my dropbox and you can download it from here.

Please let me know if you've downloaded and tested it and how it works for you. My email is tyrrell <dot> simon <at> gmail <dot> com.

Any issues can also be added to my forked repo at

https://github.com/billyfish/libgit2/issues

cheers and good luck!

billy




Go to top
Re: updating sgit
Just popping in
Just popping in


See User information
Another update!

Another work in progress version of simplegit and libgit2 to get the functionality up to date. There are two sets of executeables in the linked archive: sgit and lg2. Both are compiled against an up to date version of libgit2. The difference is that sgit uses the existing API wrapper from simplegit, whereas lg2 is based upon the examples that come with libgit2. Currently sgit has more commands available and you may find that those in lg2 have more functionality and/or run faster. Testing with a status command for a checked out version of the simplegit repository, lg2 completed it in 14 seconds as opposed to 39 with sgit. This was on my X1000 and the mileage may vary.

You can download it from here


Any questions, email me at tyrrell <dot> simon <at> gmail <dot> com

Billy

Go to top
Re: updating sgit
Just popping in
Just popping in


See User information
Sounds good, looking forward to testing it tonight :)


Quick question, does it support SSH and login using private key file?

Go to top
Re: updating sgit
Just popping in
Just popping in


See User information
@Shadow

Quote:
Quick question, does it support SSH and login using private key file?


Not yet, though that's definitely the plan. With the great work that salass00 has done on sshterm, I'm hoping it will be relatively straightforward to implement.

My current plan is make sure that all of the latest libgit2 stuff works, then merge the updated code used in lg2 and simplegit, then add the ssh stuff.

cheers

billy

Go to top
Re: updating sgit
Home away from home
Home away from home


See User information
@billyfish

I'm just a mere user (and do some teeny-weeny ports) but git is becoming more and more of a "standard", so i'm glad there will be updates.

Cheers for that and stay healthy

Go to top
Re: updating sgit
Just popping in
Just popping in


See User information
@billyfish

Unfortunately I got a crash immediately when using sgit.

I have submitted an issue on github


Edited by Shadow on 2020/5/18 22:00:53
Go to top
Re: updating sgit
Just popping in
Just popping in


See User information
@Shadow

Sorry about that, I've added comments to the issue. I could reproduce it in a default shell, which disappeared for me when I incresed the stack, so I'll add astack cookie into the code too. This in turn led to complaints about the ssl certificate, so I'll need to see if/where I've messed up the compile of openssl that it uses.

billy

Go to top
Re: updating sgit
Just popping in
Just popping in


See User information
Hi all

So the progress on simplegit has continued and there is good news and bad news

The good news is that I've replaced the old statically-linked version of OpenSSL 1.0.1 and it now uses AmiSSL library for all of the SSL calls so we'll keep up to date easier and it has substantially reduced the executeable size.

As for the bad news is that in 2014 libgit2 moved over to using mmap ()/umap () style calls for all of its I/O. It looks like ChrisY implemented emulation of this, however since this full move over to mmap()/umap(), no longer fully works. There are more details at https://github.com/libgit2/libgit2/iss ... 76#issuecomment-342806844.

The specific piece of code is at https://github.com/billyfish/libgit2/blob/master/src/posix.c from line 219 onwards and our missing bit of functionality at line 245.

The issue is that this mmap emulation doesn't cover the situation when the memory that is being used as the cache has been labelled as shared and the memory is to be written to. From my initial investigations, I think that libgit2 isn't using threads but I need to look further.


So is anyone aware of an implementation of mmap()/umap() on OS4 or, if not, any pointers on what libraries I can use to have to try and develop one, like Exec's MMU interface maybe?

For reference, the unix versions of these libgit2 methods are at https://github.com/libgit2/libgit2/blob/master/src/unix/map.c

cheers

billy











Edited by billyfish on 2020/5/21 16:50:13
Edited by billyfish on 2020/5/21 20:37:10
Edited by billyfish on 2020/5/21 20:50:33
Edited by billyfish on 2020/5/21 21:05:33
Go to top
Re: updating sgit
Just popping in
Just popping in


See User information
Hi,

Not sure if this is helpful, but you can allocate memory using IExec->AllocVec and set the MEMF_PUBLIC or MEMF_SHARED flag

Go to top
Re: updating sgit
Home away from home
Home away from home


See User information
@billyfish
Quote:

So is anyone aware of an implementation of mmap()/umap() on OS4 or, if not, any pointers on what libraries I can use to have to try and develop one, like Exec's MMU interface maybe?

Unfortunately, no. I don't know of any mmap()/munmap() emulation code. This is where having OS support for it would really help...

To correctly emulate this, you'd need a common (system-wide) cache for the shared files, and write back to disk when the last process munmap()s it. I'm guessing that libgit2 doesn't intend to share the file with other programs, so you might be able to get away with an internal shared cache.

Hans

Join Kea Campus' Amiga Corner and support Amiga content creation
https://keasigmadelta.com/ - see more of my work
Go to top
Re: updating sgit
Just popping in
Just popping in


See User information
Ignore my previous ill-informed reply, of course the sharing is at the file level, which is difficult to do, when the emulation simply reads the file to memory.

Maybe you can get away with making some assumptions e.g. like you mention there is probably no threading or on Amiga you simply disable threading.

Go to top

  Register To Post
« 1 2 (3) 4 5 6 »

 




Currently Active Users Viewing This Thread: 3 ( 0 members and 3 Anonymous Users )




Powered by XOOPS 2.0 © 2001-2024 The XOOPS Project