BP Logo
Home » MODDING HQ 1.13 » v1.13 General Development Talk » Git instead of Subversion as Source Versioning (Because VS supports git)
icon14.gif  Git instead of Subversion as Source Versioning[message #358955] Fri, 07 February 2020 19:08 Go to next message
CptMoore

 
Messages:224
Registered:March 2009

Git vs Subversion[ 13 votes ]
1. Git 9 / 69%
2. Subversion 4 / 31%

Hi there,

please apologize for spamming this forum. This came from a very short discussion on discord.

I would propose to move the trunk code development from Subversion to Git.

Reasons
  1. VS supports Git as part of the IDE. That way you can view changes in VS and have it more integrated. Merging is also simple and supported within the IDE.
  2. Git allows for distributed development, e.g. I can commit something already without pushing it to a central server, that allowing me to backup my changes locally and I can work on different branches without having to have write access to the svn server. This is helpful for first time contributors to a project to quickly start with modding themselves.
  3. Free hosting platforms (github) and tools (gitlab) exists that support contributing. Reviewing code is easy, and forking as well as pull requests allow for a standardize way to contribute (no patch sending via pm etc..).
  4. Thanks to aimnas we already have a working git repo that is almost ready to use, only a .gitignore is missing as well as users and permissions.
Issues
  1. Git is different, a tad more complex and one needs to learn it (svn: commit; git: staging,commit,push).
  2. While one can also move the assets parts to git/github, I wouldn't do that yet as many modders use SVN as a free form binary data storage. I would only concentrate on the code right now, meaning people still need a subversion client for downloading asset files.
  3. Git is a newer tool, and if you have an extremely old machine, maybe git doesn't work there while subversion would. (are you allowed to use internet with that machine though?)
  4. While trunk is already on git as a mirror, any code branches stored somewhere on Subversion are not. One would need to migrate those manually.
Please vote what you think makes more sense.

Disclaimer: Since I neither have access to the current Subversion nor represent any of the coders here on JA1.13 this poll might have no consequences what so ever and changes might or might not occur, regardless of any poll results. I can help with github related tasks but my knowledge about Subversion -> Git converter are theoretical at best.

Thank you for reading and please leave a comment down below shy
Re: Git instead of Subversion as Source Versioning[message #359414 is a reply to message #358955] Sun, 05 April 2020 00:28 Go to previous messageGo to next message
CptMoore

 
Messages:224
Registered:March 2009
Just a short note, https://github.com/ja2-stracciatella has a very good project setup in regards to source versioning and continuous integration that could be applied for JA1.13 too.
- git on github for modern ui for git and pull request support
- appveyor and travis-ci for free CI build systems that checks if everything still compiles
- cmake to avoid having to build VS project files for every VS version (cmake can generate VS project files in all versions, e.g. 2005-2019 as JA1.13 is using)
Re: Git instead of Subversion as Source Versioning[message #360925 is a reply to message #359414] Thu, 13 August 2020 09:20 Go to previous messageGo to next message
Julix

 
Messages:105
Registered:June 2010
Location: Canada

As a web dev I'm a lot more familiar with Git than SVN - also file changes could be explored in browser more easily, code contributors get "activity" on their profile (which can be good for getting programming jobs), code review is nice with pull requests... maybe that can be done with SVN too, and I just don't know how?
Re: Git instead of Subversion as Source Versioning[message #362321 is a reply to message #360925] Sun, 07 February 2021 13:08 Go to previous messageGo to next message
Asdow

 
Messages:67
Registered:August 2010
Flugente seems to be MIA and since it's just mostly Seven and I who touch the source code regularly, I'd like to get back to this a bit. I think the advantages that CptMoore outlined favor moving the project to github, even though setting it up needs some work. The automated compile check and forgoing the need to manually build VS project files would be good. Github's Issues would also be a good place for reporting and keeping track of bugs.

Are there any good reasons as to why we shouldn't move towards github and the approach CptMoore outlined?
Re: Git instead of Subversion as Source Versioning[message #362322 is a reply to message #362321] Sun, 07 February 2021 14:14 Go to previous messageGo to next message
ATigersClaw

 
Messages:210
Registered:October 2014
Location: Braunschweig, Germany
Even though I don't have anything to do with neither Subversion nor GitHub I second the suggestion of Asdow just for the possibility of reporting and tracking bugs.



Jagged Alliance 2 StrongPoint: Website & Thread || 1.13 installation || Mercenary overview
Re: Git instead of Subversion as Source Versioning[message #362325 is a reply to message #362321] Sun, 07 February 2021 19:09 Go to previous messageGo to next message
Kitty

 
Messages:323
Registered:October 2017
Location: Germany
Asdow wrote on Sun, 07 February 2021 13:08
Flugente seems to be MIA and since it's just mostly Seven and I who touch the source code regularly, I'd like to get back to this a bit. I think the advantages that CptMoore outlined favor moving the project to github, even though setting it up needs some work. The automated compile check and forgoing the need to manually build VS project files would be good. Github's Issues would also be a good place for reporting and keeping track of bugs.

Are there any good reasons as to why we shouldn't move towards github and the approach CptMoore outlined?
Probably doesn't file under "good reason", rather a selfish opinion:

- to be honest, I suck big when it comes to github. Tried to contribute the content of my "How to get latest 1.13"-thread to the already existing "Starter Documentation" on github, but so far couldn't wrap my mind arround fork, request, pull, etc.

- for SVN on the other hand, I was able to follow the instructions and advice on how to use it for compiling a SCI with VS. As I understand Cpt.Moore, github would automate that process. But that's what I thought about Jenkins Server as well - and that seems to be stuck at version 8918 at the moment. Can "being-stuck" avoided with github?

- I like the SVN-logs, they are easy to access and give me a good idea on where to look up what you coding-magicians have done. Would this be as easy with github?

- also the logs: I can lookup old features (feature x has been implemented with version y - I can look up log for version y to see what has been done). Would this be possible with github?

- since github seems to require more knowledge on handling, wouldn't this narrow down the amount of possible contributors instead of increasing the number?

- some work seems to be required, but who's gonna prepare and do the moving from SVN to github?

- if moving, word about this should be spread. There are some forums beside Bear's Pit that publish SCI based on SVN (like the polish JaggedAllianceCenter). Would be fair to let them (and any others that might do this unaware by me) know.


Like I said, that's just a selfish opinion. Beside some minor changes that never went public, I can't do much about code. All I do is experimenting and see if it's working (tried to add a new explosion, add/change npc-facts, some sound changes for opening stuff, etc. different degrees of success).

So, if github realy is much more useful and convinient for the people that do the actual work on code, it probably should be considered. An instruction like "JA2-github for dummies" would be nice for folks like me, if this ever should happen. Just imagine trying to explain this to your grandparents that grew up without any computer - something on that level ...

[Updated on: Sun, 07 February 2021 19:11]




How to get: latest 1.13, 7609 and more | 7609 SCI (eng) | Compiling+SVN

I need more details. (Didi Hallervorden)
Re: Git instead of Subversion as Source Versioning[message #362334 is a reply to message #362325] Mon, 08 February 2021 13:44 Go to previous messageGo to next message
silversurfer

 
Messages:2800
Registered:May 2009
Personally I prefer SVN. It is better structured than Git from my experience and it is easier to use for non-coders.

I'm currently taking a small part in a project on GitHub and I found working with it a major pain in the butt.

- Trying to create a patch always leads to additional files added to the patch, although I haven't even touched them.
- Trying to just pull the newest version of the code always leads to additional requests and clicks, just because I have done a small modification to some file.
- There is no proper versioning, at least I haven't been able to find one. Versioning is done by hand.
- When you do a commit, the description is only added to the modified files and overwritten with the next commit. Often commit fails anyway, because TortoiseGit complains that some refs are missing and I have to add them manually.
- When downloading the code as ZIP directly from GitHub, often the ZIP doesn't contain the current code that is displayed, but some outdated version of the code.
...

Maybe coders are fond of GitHub, because they use it everyday and know how to work around such issues. I wouldn't recommend it to any "normal user".
Also bug reports aren't going to be better on GitHub, just because there is an issues tracker. Actually they will probably be worse than here, if that is possible...

The only Pro I found is that people can easily create a branch of the main code, modify it and then issue a pull request to get the changes into the "main trunk". This can easily be done by patches as well, so it's no reason to switch from SVN to Git in my opinion.



Wildfire Maps Mod 6.07 on SVN: https://ja2svn.mooo.com/source/ja2/branches/Wanne/JA2%201.13%20Wildfire%206.06%20-%20Maps%20MOD

Re: Git instead of Subversion as Source Versioning[message #362359 is a reply to message #362334] Wed, 10 February 2021 21:45 Go to previous messageGo to next message
Asdow

 
Messages:67
Registered:August 2010
@Kitty
I wouldn't call those a selfish opinion. Ease of use is definitely a legitimate reason to use one over another.
Github does keep commit history similarly to SVN, so being able to look up what's changed is possible with it as well. You can do it simply in your webbrowser, by clicking on the number of commits a repository has and then browse through the history. I don't think it has a running version numbering like SVN though but instead uses a hash for ID'ing commits.

@Silversurfer
I'm surprised you've encountered that many difficulties with github. It's worked pretty nicely for me through Github Desktop, though I must admit, I've only been using github for personal projects, where I have not had to deal with pull requests or even really branches either apart from a fork or two.

I'm more used to SVN than github so I don't have particularly strong opinion on moving. The parts in CptMoore's posts to catch my attention were the bug tracker, as reports of bugs tend to get buried eventually in that megathread here in the forums and the cmake option for generating VS project files. Actually, even if we do nothing else, I think the cmake for VS project files itself would be a worthy addition to the code. It would make splitting large source files and adding new ones much more convenient while reducing the chance of errors, since at the moment the files have to be added to every project manually, if I'm not completely wrong.



Re: Git instead of Subversion as Source Versioning[message #363484 is a reply to message #362325] Thu, 08 July 2021 15:49 Go to previous message
rasz

 
Messages:38
Registered:August 2006
Kitty wrote on Sun, 07 February 2021 17:09

- I like the SVN-logs, they are easy to access and give me a good idea on where to look up what you coding-magicians have done. Would this be as easy with github?

- also the logs: I can lookup old features (feature x has been implemented with version y - I can look up log for version y to see what has been done). Would this be possible with github?
command line >git log produces pretty much same thing, plus you have this https://github.com/aimnas/ja2-1.13-source-mirror/commits/master

Kitty wrote on Sun, 07 February 2021 17:09

- since github seems to require more knowledge on handling, wouldn't this narrow down the amount of possible contributors instead of increasing the number?
SVN knowledge is approaching gray beard territory, every CS student on the other hand is required to know their way around git.

Kitty wrote on Sun, 07 February 2021 17:09

- some work seems to be required, but who's gonna prepare and do the moving from SVN to github?
seems whoever is running AIMNAS already performed smooth migration and is on top of merging SVN changes


silversurfer wrote on Mon, 08 February 2021 11:44

Also bug reports aren't going to be better on GitHub, just because there is an issues tracker. Actually they will probably be worse than here, if that is possible...
can you elaborate? proper issue tracker is the way to go instead of chasing randomly scattered forum threads.

[Updated on: Thu, 08 July 2021 15:53]

Previous Topic: Hotkey status
Next Topic: Graphical enhancement new features
Goto Forum:
  


Current Time: Mon Oct 18 19:29:47 EEST 2021

Total time taken to generate the page: 0.00882 seconds