On Sat, Jun 15, 2013 at 4:28 PM, Antonia Horincar <
[email protected]> wrote:

> Hi,
>
> Thanks for your reply. I am going to take a closer look at the
> existing components to see how are they being processed in their
> current implementation. I might need to ask some more questions
> regarding this aspect, but I'll get back to you after I have a better
> look at them.
>
> Also, it's the first time I'm using Subversion as a version control
> system and I'm not sure how are we going to be able to commit things.
> I have cloned the repo, but I'm not sure of whether we are allowed to
> simply commit things, without 'asking' for permission (like pull
> requests in Git) or not. And if not, what steps should we follow in
> order to be able to commit?
> I'm a little bit scared at the thought of 'breaking' things, so if you
> have some useful tips on SVN, that would be really appreciated (I'm
> not talking about obvious steps, but maybe some of you have
> encountered some special situations, and have some advise on the good
> practice of SVN).
>

I can mention a few things that I see people in SVN stumble on. We have the
good fortune of having two long-time SVN developers on the project in our
mentors Brane and Greg, so I'm sure they'll jump in and correct me if any
of this is incorrect, or in any way less than accurate.

 - You'll be working on a branch, and it's a good idea to regularly (say,
once per week, or more) merge from the trunk and keep you branch synced up
with the trunk.
 - Always merge into a clean working copy, and don't make any modifications
to the working copy before committing the results of a merge (probably
obvious and applicable to Git as well, though you may have worked primarily
with rebasing).
 - Always merge from the root of your working tree. That is, merge /trunk
to /branches/antonia, and don't try to merge /trunk/somedir to
/branches/antonia/somedir. SVN tracks the merged changesets through the
svn:mergeinfo metadata which is attached to a directory, so performing a
merge on a subdirectory and littering this metadata throughout your tree
can cause headaches. I don't imagine that you'd do this because the size of
our working copy is fairly small, but you might be surprised how often I
see people do this on large repositories.
 - This probably won't come up for your project, but SVN can cause some
headaches when files that also exist on another branch are moved. You are
fine to move around files that you add to your branch, and that don't
already exist on the trunk or another branch.

If you are comfortable with Git, you may want to use Git as a client and
use the Git-SVN connector to push changes to the repository. I've found the
Git client to be useful in this case for allowing me to stage and
reorganize my changes locally, which ultimately results in cleaner
changesets pushed to SVN. I recently read someone describe it as a "patch
manager on steroids", and it works well for that in my experience. Just
make sure to push your work regularly so you can get feedback on it.

Welcome aboard!

- Ryan

Reply via email to