Quantcast
Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
    1. Welcome to GTAForums!

    2. News

    1. Red Dead Redemption 2

    1. GTA Online

      1. After Hours
      2. Find Lobbies & Players
      3. Guides & Strategies
      4. Vehicles
      5. Content Creator
      6. Help & Support
    2. Crews

      1. Events
      2. Recruitment
    1. Grand Theft Auto Series

    2. GTA Next

    3. GTA V

      1. PC
      2. Guides & Strategies
      3. Help & Support
    4. GTA IV

      1. Episodes from Liberty City
      2. Multiplayer
      3. Guides & Strategies
      4. Help & Support
      5. GTA Mods
    5. GTA Chinatown Wars

    6. GTA Vice City Stories

    7. GTA Liberty City Stories

    8. GTA San Andreas

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    9. GTA Vice City

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    10. GTA III

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    11. Top Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    12. Wiki

      1. Merchandising
    1. GTA Modding

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    3. Featured Mods

      1. DYOM
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Red Dead Redemption

    2. Rockstar Games

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Programming
      5. Movies & TV
      6. Music
      7. Sports
      8. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Forum Support

    2. Site Suggestions

The_GTA

CodePlex is shutting down... R.I.P. free SVN!

Recommended Posts

The_GTA

Hello GTA community,

 

in my opinion, CodePlex is a great source code hosting website that is 100% free. Unfortunately, Microsoft decided to pull the plug by December 2017.

 

This means: A huge setback for great, reliable and free SVN/Git hosting.

 

I have been hosting many great SVN projects there, such as MTA:Eir, Magic.TXD and IDB2PDB symbol inject. You can find me here.

 

Have you ever considered the advantages of either SVN or Git? Or were you forced to use Git because it is trendy?

 

SVN advantages:

- async distributed code-base development (svn:externals)

- directory-based source management

- properties can be applied to files and folders

 

Git advantages:

- created by Linus Torvalds

- powerful control panels on websites

- streamlined to make reproducible builds simple

 

What are your thoughts?

Share this post


Link to post
Share on other sites
Parik

First Google Code now Codeplex.

GNU Savannah still provides free SVN , but its only for free softwares with no proprietary dependencies.

 

 

 

 

 

Both Google Code and Codeplex started in 2006.

 

 

 

 

Edited by Parik

Share this post


Link to post
Share on other sites
K^2

SVN is great until you %$#@ something up. Then you wish you were using Git. I have lost work on SVN because I've reset a repo, forgetting that I've had some modifications, or because a merge went sideways. This just isn't a thing in Git. If you have unstaged changes, you won't be able to rebase or merge over. You'll have to commit or stash. And if you've done absolutely anything to mess up a commit, you can always rewind on history, even if commit was local. I have not once had something go wrong in Git where I wasn't able to rewind from either on branch or stash history.

 

And don't get me started on branching. I used to work at a studio that used SVN for their main version control. We had the main branch for current state of the common engine, and then branched from it were game branches with various released versions. If I had a live crash I needed to reproduce, I had to get the code from matching branch, and it would take half an hour or more to download each time, because there is no concept of checking out just the changes you need when you have a branchy history. Likewise, merging a bug fix up/down was always a horrible pain. Again, non-issues with Git. You can check out from one branch to another in seconds once you have it fetched. And merging is super easy in any combination.

 

Seriously, do yourself a favor and learn how to work with Git. The learning curve is significantly steeper, because you have to understand how branches and history actually work in git to make proper use of it. But it's absolutely worth it. Once you understand how to use Git properly, there is absolutely no competition with SVN. The later can't do half of the things you won't be able to live without once you learn Git.

 

 

- async distributed code-base development (svn:externals)

- directory-based source management

- properties can be applied to files and folders

- Git submodules.

- Git checks out to a directory, just like SVN. SVN just can't switch branches in-place.

- Properties are tracked in Git.

Share this post


Link to post
Share on other sites
The_GTA

SVN is great until you %$#@ something up. Then you wish you were using Git. I have lost work on SVN because I've reset a repo, forgetting that I've had some modifications, or because a merge went sideways. This just isn't a thing in Git. If you have unstaged changes, you won't be able to rebase or merge over. You'll have to commit or stash. And if you've done absolutely anything to mess up a commit, you can always rewind on history, even if commit was local. I have not once had something go wrong in Git where I wasn't able to rewind from either on branch or stash history.

Human error is inevitable. You describe that Git protects the repo more tightly. Good point, imo sometimes too much. Usually I work on one big thoroughly tested commit. TortoiseSVN helps synchronizing with remote conflicts. I remember Git tools being more advanced at merging. Rewinding is not my cup of tea.

 

 

And don't get me started on branching. I used to work at a studio that used SVN for their main version control. We had the main branch for current state of the common engine, and then branched from it were game branches with various released versions. If I had a live crash I needed to reproduce, I had to get the code from matching branch, and it would take half an hour or more to download each time, because there is no concept of checking out just the changes you need when you have a branchy history. Likewise, merging a bug fix up/down was always a horrible pain. Again, non-issues with Git. You can check out from one branch to another in seconds once you have it fetched. And merging is super easy in any combination.

Git _is_ the better solution here. You see once projects become big like this (multiple versions) then it is great to tightly control every little change. SVN allows too much freedom.

 

SVN outplays Git in small open-source scenarios. Establish multiple repositories with shared code and link them together checking out HEAD revision. Update a shared repository: need to verify change using commit in each GIT repo, need to verify nothing in SVN repo. Call me lazy but it is great!

 

 

Seriously, do yourself a favor and learn how to work with Git. The learning curve is significantly steeper, because you have to understand how branches and history actually work in git to make proper use of it. But it's absolutely worth it. Once you understand how to use Git properly, there is absolutely no competition with SVN. The later can't do half of the things you won't be able to live without once you learn Git.

Pretty sure Git is great. I use it myself if I have no shared, modular code. Appreciate those things like "branches" and "history" too.

 

I just wish that there were less zealots trying to switch every SVN system to Git. There is no 1:1 conversion for each SVN workflow.

 

 

- Git submodules.

- Git checks out to a directory, just like SVN. SVN just can't switch branches in-place.

- Properties are tracked in Git.

- See my rant above; submods do not auto-update to HEAD.

- In Git you cannot add a directory; only the files inside. It is a difference.

- Which are stored in files, right? In SVN it is meta-data invisibly attached to files/folders. Cool concept.

 

------------------------

 

Thank you for your civil contribution to the discussion, K^2 :-)

Share this post


Link to post
Share on other sites
K^2

The only advantage of SVN is simplicity in use, which is entirely negated once you get used to Git. Yes, you need to know and be aware of more things to use Git, but once you learn these things for one project, that disadvantage entirely disappears. I've seen projects that use SVN as a separate repo for things like scripts, shaders, various config files maintained by technical artists and junior coders. This sometimes makes sense so that you don't have to teach these people to use Git. But if you have a team of people who know how to use Git, there is no reason not to use Git. And any serious project should consist of people who either know it already or can quickly learn.

 

Yes, submodules do not auto-update. They shouldn't. Every update to head of a module is potential incompatibility with usage in your code. If you are updating a submodule, there should be a reason for it. You should know what the changes were, and verify that no new conflicts are introduced with your code. Hence the manual updates. You can set up a script that automatically keeps submodules in sync if you want to, but I wouldn't. It seems less like a feature and more like a rake waiting to be stepped on by people who don't know how these systems work.

 

And yes, git requires a file in a directory, which can be a simple placeholder. This makes sense with how branch-switching works, so I don't mind having to create an empty file if I need to. The properties are maintained on files/directories you modify properties on. Same as they are on the file system. Just like SVN, Git does maintain metadata on files.

Share this post


Link to post
Share on other sites
The_GTA

The only advantage of SVN is simplicity in use, which is entirely negated once you get used to Git. Yes, you need to know and be aware of more things to use Git, but once you learn these things for one project, that disadvantage entirely disappears. I've seen projects that use SVN as a separate repo for things like scripts, shaders, various config files maintained by technical artists and junior coders. This sometimes makes sense so that you don't have to teach these people to use Git. But if you have a team of people who know how to use Git, there is no reason not to use Git. And any serious project should consist of people who either know it already or can quickly learn.

 

Yes, submodules do not auto-update. They shouldn't. Every update to head of a module is potential incompatibility with usage in your code. If you are updating a submodule, there should be a reason for it. You should know what the changes were, and verify that no new conflicts are introduced with your code. Hence the manual updates. You can set up a script that automatically keeps submodules in sync if you want to, but I wouldn't. It seems less like a feature and more like a rake waiting to be stepped on by people who don't know how these systems work.

 

And yes, git requires a file in a directory, which can be a simple placeholder. This makes sense with how branch-switching works, so I don't mind having to create an empty file if I need to. The properties are maintained on files/directories you modify properties on. Same as they are on the file system. Just like SVN, Git does maintain metadata on files.

It sounds very convincing the way you say it. Starting out with Git seems like a good idea.

 

SVN is simple on the surface. But once you start getting into the gritty things, like partial check-outs for code sharing, it is really easy to break things. The only way to check-out a Git repository is from it's root and that is good design decision, for simplicity's sake.

 

If multiple coders work on multiple repositories that are connected using submodules/externals, there is a high chance that communication breaks and they break the API handshakes. Usually breaking changes in API give you a good reason to adapt your codebase in return, for example when listing to HEAD, but I get how it can be annoying. Some devs could be slacking or the dev of externals breaks his codebase too often.

 

In SVN world you would have a special directory in the codebase (called a 'branch') that you can selectively check-out for a stable thing. Wouldn't that be okay for listening to HEAD?

 

Having a choice is good!

 

===========================

 

After the closure of CodePlex people might be looking for a new source code host, for either SVN or Git. OSDN.net has surpised me a lot. It offers free Git/SVN/Mercurial SCM hosting, gives you webspace with a custom sub-domain, has high-speed SCM connectivity (SVN update reaches 1MB/sec). But the tip of the iceberg: I made a support ticket and the OSDN.net team responded hyper-fast. I'd suggest give them a chance. :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.