|
|
polygone
|
![](https://enigma-dev.org/forums/Themes/enigma_v4/images/xx.gif) |
Reply #2 Posted on: January 01, 2012, 05:41:21 pm |
|
|
![Contributor](membericons/contributor.svg.png) Location: England Joined: Mar 2009
Posts: 794
|
github sucks balls
|
|
|
Logged
|
I honestly don't know wtf I'm talking about but hopefully I can muddle my way through.
|
|
|
|
|
Josh @ Dreamland
|
![](https://enigma-dev.org/forums/Themes/enigma_v4/images/xx.gif) |
Reply #5 Posted on: January 02, 2012, 11:09:53 am |
|
|
Prince of all Goldfish
![Developer](membericons/developer.svg.png) Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
I thought I replied to this thread. Switching would bring serious benefit to the tagging system; it takes too fucking long and consistently fails trying to mark the trunk as stable or testing. So huge benefit to be gained. Difficulty is, everything is already set up in LGM to use SVN for downloading updates, via SVNkit. JGit seems to be what we'd look to for its replacement. Also, the Wiki install pages all give SVN checkout instructions; those would either need to be replaced or supplemented (in case we want to keep the SVN version current) with the git how-tos. If either of you are volunteering, I'll be happy to make the switch. I don't speak for Ism.
|
|
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
|
IsmAvatar
|
![](https://enigma-dev.org/forums/Themes/enigma_v4/images/xx.gif) |
Reply #7 Posted on: January 03, 2012, 04:37:32 pm |
|
|
LateralGM Developer
![LGM Developer](membericons/lgm_developer.svg.png) Location: Pennsylvania/USA Joined: Apr 2008
Posts: 877
|
When I get the chance, I'll start porting the updater to JGit (and/or browse for alternatives to JGit). It's completely self-contained, as can be seen by the method of turning it off (just delete svnkit.jar).
If you guys want to go ahead and start porting ENIGMA's SVN to GIT, whatever that entails, be my guest. It'll make my job easier because then I'll have a working repository to test against.
Unfortunately, while I have a ton of experience with SVN, I only have a tiny bit of experience with GIT, so either I'm going to have to do some learning, or someone else is going to have to be our resident repository expert.
|
|
|
Logged
|
|
|
|
RetroX
|
![](https://enigma-dev.org/forums/Themes/enigma_v4/images/xx.gif) |
Reply #8 Posted on: January 03, 2012, 09:42:25 pm |
|
|
Master of all things Linux
![Contributor](membericons/contributor.svg.png) Location: US Joined: Apr 2008
Posts: 1055
|
Unfortunately, while I have a ton of experience with SVN, I only have a tiny bit of experience with GIT, so either I'm going to have to do some learning, or someone else is going to have to be our resident repository expert.
I know loads about git, so, I can tell you want if/when needed. When you're developing on Linux, I recommend looking into gitg; it's an extremely useful commit history visualiser (particularly with branches) and supports mediocre staging/committing. Essentially, Git works off of unstaged, staged, stashed, and committed changes: - Unstaged changes are just unversioned file changes.
- Staged changes are the changes that are ready to commit.
- Stashed changes are sort of halfway between unstaged and staged; they work somewhat like stacks. You can stash changes if you want to keep changes that you've made on hand while returning back to the last versioned state.
- Git operates as a fully local repo with links to other repos. On your own repository, you can commit and uncommit as much as you want, and when you're ready, you can push those changes to another repo. You can also pull changes from said repo. You can technically uncommit on your local repo even if you've pushed changes, but then, you'll have problems when you want to push new changes forward.
- I don't fully understand how SVN's branches work, but git's are essentially "branching" off of an existing commit. Essentially, what this means is that on your new branch, all changes will be inherited up until a point, and then, you'll only inherit future commits on that branch. You can merge branches, too. You can stash changes and switch branches if you want to save your work from another branch while saving your progress on another. From what I've heard of SVN's, those are more of "let's create a repo within a repo and not care about past changes"
- Git also supports cherry-picking, which enables you to pull single commits from one branch onto another.
- Git's version control is object-based, not file-based (like SVN). This means that renames will not bork the entire system, but getting a single file's commit history is slightly more difficult.
Git operates based off of changes and merges a lot better than SVN does. If you modify the first half of a file in one branch, then the second half in another, git can merge both changes without a problem. It's only where these changes intersect that it causes problems (such as two branches changing the same line). There are loads of things that you can actually do with it, but I'll explain them as they're needed rather than all at once. Plus, you probably know a lot of it.
|
|
|
Logged
|
My Box: Phenom II 3.4GHz X4 | ASUS ATI RadeonHD 5770, 1GB GDDR5 RAM | 1x4GB DDR3 SRAM | Arch Linux, x86_64 (Cube) / Windows 7 x64 (Blob)Why do all the pro-Microsoft people have troll avatars? ![Sad :(](https://enigma-dev.org/forums/Smileys/somethingawful/sad.gif)
|
|
|
IsmAvatar
|
![](https://enigma-dev.org/forums/Themes/enigma_v4/images/xx.gif) |
Reply #9 Posted on: January 04, 2012, 03:36:48 pm |
|
|
LateralGM Developer
![LGM Developer](membericons/lgm_developer.svg.png) Location: Pennsylvania/USA Joined: Apr 2008
Posts: 877
|
SVN's branches are just total copies of one folder to another. This takes up very little space, since it can just say "this is the same as folder X at revision Y". It does actually have the full history behind each file, due to this linking nature. The branch does, however, get out of date if you don't merge the trunk with it, which means you should either regularly merge, or merge before reintegrating.
SVN has actually gotten a lot smarter at merging files, too. Usually you can merge a file with changes on both ends without issue, provided you didn't modify the same line. Every now and then it does get fussy over something silly, though.
Just to clarify what SVN does. I, of course, see loads of benefits to using GIT over SVN, provided I can figure out how to work it.
|
|
|
Logged
|
|
|
|
|