savannah-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Savannah-users] SVN Syntax Question


From: Bob Proulx
Subject: Re: [Savannah-users] SVN Syntax Question
Date: Thu, 21 Apr 2016 00:10:45 -0600
User-agent: Mutt/1.5.24 (2015-08-30)

Hi Stephen,

Stephen H. Dawson wrote:
> I am maintaining GNU remotecontrol. We are preparing for our next
> version release. We have taken the present version of code to end of
> life. I have made a copy of everything in our /trunk directory to an
> archive directory, so we have it for legacy.
> 
> http://svn.savannah.gnu.org/viewvc/branches/Version1.1-EOL/?root=remotecontrol

Good!

Looking in that directory I see that some source rpms have been
checked into the repository.  Since source rpms replicate the source
that should be found elsewhere in the repository that is generally
frowned upon.  It is rather the same as checking in a distribution
tar.gz file.  Same thing.  It duplicates the source found elsewhere.
It is too late for those since those are already checked in but it is
best to avoid doing that in the future.

> My objective now is to:
> -First, svn remove all files and directories from our /trunk directory.
> 
> -Second, svn add everything from my
> /home/stephen/remotecontrol/branches/Version2.0/ directory to my
> /home/stephen/remotecontrol/trunk/ directory.

Note that there are as many different work flows as there are people
working with them.  There is more than one way to do things.

Given the goal that you have in mind these actions sound reasonable to
me.  You are wanting to convert the Version2.0 branch over in the
branches directory over to the main trunk area.  Given that then what
you propose seems reasonable to me.

Note that since the files have previously been checked into
subversions repository they are safe there in the version history.
Removing them from the top of trunk does not remove them from the
version history.  Anyone may still check out the files from the
history.

> I am not sure what will happen with the first item, but my best guess is:
> svn delete [SOMETHING FOR RECURSIVE] /home/stephen/remotecontrol/trunk/
> svn commit -m "Clearing out for next version release."

I recall the default delete to be recursive already and no options are
needed.

> I am not sure, but I am guessing the syntax for the second item is:
> svn add /home/stephen/remotecontrol/branches/Version2.0/ 
> /home/stephen/remotecontrol/trunk/
> svn commit -m "Version 2.0 release."

I am a little confused by the "Version 2.0 release." message.  It
seems to me that at release the trunk would be moved to a release
branch.  But here instead of releasing you are moving it to trunk for
continued development.  If so then I would say that instead.  But do
whatever you think is the most appropriate thing to do.

And not "add" but "move" or "copy" depending upon what your desire is
about leaving the copy in the branches directory.  I am guessing you
want to "move" the branch into trunk for continued development.  This
requires that trunk has been removed first or it will create a
subdirectory under trunk.

  svn update
  svn del trunk
  svn move branches/Version2.0 trunk
  svn commit -m "Moving branch to main trunk for continued development."

I see that you have checked out the entire repository branches, tags,
and trunk.  That is okay.  You can certainly do that.  And having done
so the above is slightly easier.  But it is more typical to check out
just the trunk or just the branch that you want to work upon.

  svn checkout svn+ssh://svn.savannah.gnu.org/remotecontrol/trunk remotecontrol

That checks out just the trunk and is the most typical thing to do.

In which case you might be asking yourself, if I just check out trunk
then how do I do branch and tag movements?  Good question!  Use the
full repository URL for those moves and operate directly on the
repository.  Doing the above without everything checked out directly
in the repository would be like this.  This URLs are always quite long
but this is still the typical way it is done.  Note that these
commands don't use a local working copy at all.

  svn del svn+ssh://svn.savannah.gnu.org/remotecontrol/trunk
  svn move svn+ssh://svn.savannah.gnu.org/remotecontrol/branches/Version2.0 
svn+ssh://svn.savannah.gnu.org/remotecontrol/trunk

I would think that this would be a good time to create a tag of the
current state of things.  In subversion tags are just copies into the
tags directory.

  svn copy svn+ssh://svn.savannah.gnu.org/remotecontrol/trunk 
svn+ssh://svn.savannah.gnu.org/remotecontrol/tags/Release-2.0

Tags and branches are actually just he same to subversion.  But by
convention we always treat tags as read-only.  We create them, we
_might_ delete them if that is the appropriate thing to do.  But by
convention we don't make modifications in the tags.  If we wish to
make modifications we modify either in trunk or in a branch and then
create a new and different tag and tag again.

> Please kindly advise on my 2 syntax inquires. I thank you in advance for
> your time and assistance.

Thank you for asking the mailing list!  Hopefully I was able to answer
your questions.  If not please ask again.  Or perhaps others might
think my answer wrong or insufficient in which case corrections are
kindly requested.

Bob



reply via email to

[Prev in Thread] Current Thread [Next in Thread]