It is currently 10 Sep 2025, 23:20
   
Text Size

Why aren't branches used on Forge?

Post MTG Forge Related Programming Questions Here

Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins

Why aren't branches used on Forge?

Postby ArsenalNut » 03 Sep 2011, 22:22

I've been wondering for a while why branches aren't used on Forge. I wanted to create a branch to look at how some of the keywords are handled, but wasn't sure they were allowed. The conflicts created by the modifications made by DoubleStrike and Max MTG would have mitigated to a large degree if they had both been developing in branches.

I am not trying to disparage anyone's work. I love the changes to the deck editor. I am just frustrated because I cannot test a half dozen or so card I scripted this afternoon after I updated.

It just seems like good policy to make large scale changes in a branch. The branch can be kept updated with minor changes from the Trunk. It would also allow alpha testing without effecting the fragile trunk.
So many cards, so little time
User avatar
ArsenalNut
 
Posts: 512
Joined: 08 Jul 2011, 03:49
Has thanked: 27 times
Been thanked: 121 times

Re: Why aren't branches used on Forge?

Postby Max mtg » 04 Sep 2011, 03:02

Doublestrike was developing quest-related stuff, then found the codebase has changed and his solution no longer worked, so (full of emotions probably) he commited a broken build. Branches don't fix such problems and they have to be merged anyway

Looks like there will be a rollback to 10193

Also, you can update your copy of code to a certain revision, 10193 for instance, while keeping the res folder in HEAD revision
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

Re: Why aren't branches used on Forge?

Postby ArsenalNut » 04 Sep 2011, 05:53

Max mtg wrote:Doublestrike was developing quest-related stuff, then found the codebase has changed and his solution no longer worked, so (full of emotions probably) he commited a broken build. Branches don't fix such problems and they have to be merged anyway

Looks like there will be a rollback to 10193

Also, you can update your copy of code to a certain revision, 10193 for instance, while keeping the res folder in HEAD revision
I disagree. If DoubleStrike had been working in a branch, DoubleStrike could have committed incrementally to the branch and still keep in sync with changes to the trunk. Then when DoubleStrike realized the branch no longer worked because of other changes, the trunk remains intact and DoubleStrike's work is saved in a branch that can be worked on further if so desired.

A conflict could occur with branches for instance if your changes were in branch that DoubleStrike wasn't aware of. Then there would be in an issue when both branches were merged with the trunk but this largely a communication or coordination issue, which is a whole different topic.

I am not trying to pick on DoubleStrike. To me this incident is a classic example of why you want to use branches.

Thanks for the tip about keeping the code at a certain revision. I had figured out how to roll back the whole project but just rolling back the src would solve my issues with test decks that have cards that no longer existed in the rollback.
So many cards, so little time
User avatar
ArsenalNut
 
Posts: 512
Joined: 08 Jul 2011, 03:49
Has thanked: 27 times
Been thanked: 121 times

Re: Why aren't branches used on Forge?

Postby Rob Cashwalker » 07 Sep 2011, 04:37

Our devs all have various skill levels and branching is one of those advanced things that can make it very confusing for some of us... which is why Git kinda sucked for us.

As long as a dev updates their code prior to a commit, they have the opportunity to fix it to match with other changes before uploading.
The Force will be with you, Always.
User avatar
Rob Cashwalker
Programmer
 
Posts: 2167
Joined: 09 Sep 2008, 15:09
Location: New York
Has thanked: 5 times
Been thanked: 40 times

Re: Why aren't branches used on Forge?

Postby jendave » 07 Sep 2011, 05:29

Rob Cashwalker wrote:Our devs all have various skill levels and branching is one of those advanced things that can make it very confusing for some of us... which is why Git kinda sucked for us.

As long as a dev updates their code prior to a commit, they have the opportunity to fix it to match with other changes before uploading.
I agree with Rob on this. Branches need to be used with great care. In my experience, branches that are intended to be merged back into the trunk should only be used for small or siloed changes. Large merges are almost always very painful. They require lots of skill and coordination.

Branches are fine for cutover development, where the old codebase is copied into a branch and supporting patches are applied. New major development would then occur on the trunk and possibly not be released for some time. Again that would still take quite a bit of coordination to ensure proper scoping of features that would go into the trunk.

Git is the best SCM I have seen in regards to how it allows merges between branches. That said, Rob is correct in that even Git required a level of skill and plugin support (Eclipse had some Git issues) that was not conducive to Forge.
jendave
 
Posts: 307
Joined: 01 Jun 2008, 07:19
Has thanked: 8 times
Been thanked: 21 times

Re: Why aren't branches used on Forge?

Postby ArsenalNut » 07 Sep 2011, 13:15

I am used to working in an environment with branched development so that's what prompted the question.

If I am comfortable using branches, is it all right if I use them? Most of the changes I've made have been small so I've been able to make a fix, test it, and commit pretty much in one sitting. I want to look at how some of the keyword words handled which will take me longer. I'd like to be able to check in revisions without messing up the trunk.
So many cards, so little time
User avatar
ArsenalNut
 
Posts: 512
Joined: 08 Jul 2011, 03:49
Has thanked: 27 times
Been thanked: 121 times

Re: Why aren't branches used on Forge?

Postby Max mtg » 07 Sep 2011, 20:34

I don't know how to use branches, so I keep several copies of the project check out, one being actually a branch and other current version where I can fix bugs (and then transfer fixes to my brach by SVN-updating it)
Last edited by Max mtg on 08 Sep 2011, 00:35, edited 1 time in total.
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

Re: Why aren't branches used on Forge?

Postby slapshot5 » 08 Sep 2011, 00:27

Max mtg wrote:I don't know now to use branches, so I keep several copies of the project check out, one being actually a branch and other current version where I can fix bugs (and then transfer fixes to my brach by SVN-updating it)
I do the same thing.

-slapshot5
slapshot5
Programmer
 
Posts: 1391
Joined: 03 Jan 2010, 17:47
Location: Mac OS X
Has thanked: 25 times
Been thanked: 68 times

Re: Why aren't branches used on Forge?

Postby jendave » 08 Sep 2011, 15:27

ArsenalNut wrote:I am used to working in an environment with branched development so that's what prompted the question.

If I am comfortable using branches, is it all right if I use them? Most of the changes I've made have been small so I've been able to make a fix, test it, and commit pretty much in one sitting. I want to look at how some of the keyword words handled which will take me longer. I'd like to be able to check in revisions without messing up the trunk.
Feel free to use branches.
jendave
 
Posts: 307
Joined: 01 Jun 2008, 07:19
Has thanked: 8 times
Been thanked: 21 times

Re: Why aren't branches used on Forge?

Postby jendave » 08 Sep 2011, 15:33

slapshot5 wrote:
Max mtg wrote:I don't know now to use branches, so I keep several copies of the project check out, one being actually a branch and other current version where I can fix bugs (and then transfer fixes to my brach by SVN-updating it)
I do the same thing.

-slapshot5
I do this as well. I keep a SVN copy for working on the Maven build logic since that has SVN dependencies. For other development, I use git-svn to clone the SVN repo into a local git repo. I have a tracking branch which keeps as close as possible to the trunk and also keep several local branches depending on what I am working on.
jendave
 
Posts: 307
Joined: 01 Jun 2008, 07:19
Has thanked: 8 times
Been thanked: 21 times

Re: Why aren't branches used on Forge?

Postby ArsenalNut » 17 Sep 2011, 15:07

jendave wrote:I do this as well. I keep a SVN copy for working on the Maven build logic since that has SVN dependencies. For other development, I use git-svn to clone the SVN repo into a local git repo. I have a tracking branch which keeps as close as possible to the trunk and also keep several local branches depending on what I am working on.
This looks like the best option for the way I'd like to work. I've been reading up on git-svn. Could you tell me what tools you're using? From what I'm finding, it doesn't look like Egit supports git-svn yet. Are you committing from your local git repo to the Forge SVN repo?
So many cards, so little time
User avatar
ArsenalNut
 
Posts: 512
Joined: 08 Jul 2011, 03:49
Has thanked: 27 times
Been thanked: 121 times

Re: Why aren't branches used on Forge?

Postby jendave » 17 Sep 2011, 19:44

ArsenalNut wrote:
jendave wrote:I do this as well. I keep a SVN copy for working on the Maven build logic since that has SVN dependencies. For other development, I use git-svn to clone the SVN repo into a local git repo. I have a tracking branch which keeps as close as possible to the trunk and also keep several local branches depending on what I am working on.
This looks like the best option for the way I'd like to work. I've been reading up on git-svn. Could you tell me what tools you're using? From what I'm finding, it doesn't look like Egit supports git-svn yet. Are you committing from your local git repo to the Forge SVN repo?
I use command line almost exclusively for both SVN and Git. I use svnX when I do some SVN admin work (such as setting up the repo). I sometimes use GitX to see the status of my various branches. I have never liked the plugins for Eclipse.

I am committing from my local git repo into Forge SVN. The basic workflow is
1. Get latest changes from svn: 'git svn fetch'
2. Reset local repo: 'git svn rebase'
3. Make edits, changes etc.
4. Do 1. and 2. again to make sure you have the latest changes.
5. Commit changes: 'git svn dcommit'

Since I use git branches, there are a few more steps, but that is handled within git, not the git-svn toolset.
jendave
 
Posts: 307
Joined: 01 Jun 2008, 07:19
Has thanked: 8 times
Been thanked: 21 times


Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 53 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 53 users online :: 0 registered, 0 hidden and 53 guests (based on users active over the past 10 minutes)
Most users ever online was 7967 on 09 Sep 2025, 23:08

Users browsing this forum: No registered users and 53 guests

Login Form