Re: svn commit: r337157 - in head: . tools/tools/git

2018-08-04 Thread Ben Widawsky
On 18-08-04 19:36:11, Warner Losh wrote:
> 
> 
> On Sat, Aug 4, 2018, 7:11 PM Eitan Adler  wrote:
> 
> On Sat, 4 Aug 2018 at 10:16, Warner Losh  wrote:
> >
> >
> >
> > On Sat, Aug 4, 2018, 6:08 PM Eitan Adler  wrote:
> >>
> >> On Thu, 2 Aug 2018 at 11:28, Ben Widawsky  wrote:
> >> > +git_checkout()
> >> > +{
> >> > +       # Delete master
> >> > +       ${GIT} branch -D master
> >> > +
> >> > +       # Make master really be trunk
> >> > +       ${GIT} checkout -b master trunk
> >>
> >> Can't this be git branch --force master trunk ?
> >
> >
> > No. That won't work. We do not want to change the location of master.
> This will reset it to trunk, which is nearly always wrong.
> 
> See this:
> 
> ${GIT} branch -D master
> ${GIT} checkout -b master trunk
> 
> For clarity I'd expect something closer to:
> 
> git branch --force master trunk
> git checkout master
> 
> The end result is the same, but IMHO this is clearer in intent.
> 
> 
> Oh, that... yes, you may be right. There is another script that it would be
> wrong in, but not this one...
> 
> Warner
> 

LGTM. Thanks. To me, --force is a little more advanced usage, but I agree this
is a more direct approach. Would one of you mind updating the wiki so that the
two sources match (maybe also have the wiki point to this script)? I am
currently unable to register for a wiki account.

I've added you both as reviewers:
https://reviews.freebsd.org/D16593
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r337157 - in head: . tools/tools/git

2018-08-04 Thread Warner Losh
On Sat, Aug 4, 2018, 7:11 PM Eitan Adler  wrote:

> On Sat, 4 Aug 2018 at 10:16, Warner Losh  wrote:
> >
> >
> >
> > On Sat, Aug 4, 2018, 6:08 PM Eitan Adler  wrote:
> >>
> >> On Thu, 2 Aug 2018 at 11:28, Ben Widawsky  wrote:
> >> > +git_checkout()
> >> > +{
> >> > +   # Delete master
> >> > +   ${GIT} branch -D master
> >> > +
> >> > +   # Make master really be trunk
> >> > +   ${GIT} checkout -b master trunk
> >>
> >> Can't this be git branch --force master trunk ?
> >
> >
> > No. That won't work. We do not want to change the location of master.
> This will reset it to trunk, which is nearly always wrong.
>
> See this:
>
> ${GIT} branch -D master
> ${GIT} checkout -b master trunk
>
> For clarity I'd expect something closer to:
>
> git branch --force master trunk
> git checkout master
>
> The end result is the same, but IMHO this is clearer in intent.
>

Oh, that... yes, you may be right. There is another script that it would be
wrong in, but not this one...

Warner

>
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r337157 - in head: . tools/tools/git

2018-08-04 Thread Eitan Adler
On Sat, 4 Aug 2018 at 10:16, Warner Losh  wrote:
>
>
>
> On Sat, Aug 4, 2018, 6:08 PM Eitan Adler  wrote:
>>
>> On Thu, 2 Aug 2018 at 11:28, Ben Widawsky  wrote:
>> > +git_checkout()
>> > +{
>> > +   # Delete master
>> > +   ${GIT} branch -D master
>> > +
>> > +   # Make master really be trunk
>> > +   ${GIT} checkout -b master trunk
>>
>> Can't this be git branch --force master trunk ?
>
>
> No. That won't work. We do not want to change the location of master. This 
> will reset it to trunk, which is nearly always wrong.

See this:

${GIT} branch -D master
${GIT} checkout -b master trunk

For clarity I'd expect something closer to:

git branch --force master trunk
git checkout master

The end result is the same, but IMHO this is clearer in intent.


--
Eitan Adler
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r337157 - in head: . tools/tools/git

2018-08-04 Thread Warner Losh
On Sat, Aug 4, 2018, 6:08 PM Eitan Adler  wrote:

> On Thu, 2 Aug 2018 at 11:28, Ben Widawsky  wrote:
> > +git_checkout()
> > +{
> > +   # Delete master
> > +   ${GIT} branch -D master
> > +
> > +   # Make master really be trunk
> > +   ${GIT} checkout -b master trunk
>
> Can't this be git branch --force master trunk ?
>

No. That won't work. We do not want to change the location of master. This
will reset it to trunk, which is nearly always wrong.

Warner

>
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r337157 - in head: . tools/tools/git

2018-08-04 Thread Eitan Adler
On Thu, 2 Aug 2018 at 11:28, Ben Widawsky  wrote:
> +git_checkout()
> +{
> +   # Delete master
> +   ${GIT} branch -D master
> +
> +   # Make master really be trunk
> +   ${GIT} checkout -b master trunk

Can't this be git branch --force master trunk ?

-- 
Eitan Adler
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r337157 - in head: . tools/tools/git

2018-08-02 Thread Ben Widawsky
Author: bwidawsk
Date: Thu Aug  2 18:28:02 2018
New Revision: 337157
URL: https://svnweb.freebsd.org/changeset/base/337157

Log:
  tools: Add a git-svn bootstrap script
  
  codified version of https://wiki.freebsd.org/GitWorkflow/GitSvn#Using_git-svn
  
  Approved by:  emaste (mentor)
  Suggested by: Warner Losh (imp)
  Differential Revision:  https://reviews.freebsd.org/D16528

Added:
  head/tools/tools/git/git-svn-init   (contents, props changed)
Modified:
  head/.gitattributes
  head/tools/tools/git/HOWTO

Modified: head/.gitattributes
==
--- head/.gitattributes Thu Aug  2 18:24:03 2018(r337156)
+++ head/.gitattributes Thu Aug  2 18:28:02 2018(r337157)
@@ -3,3 +3,4 @@
 *.cpp  diff=cpp
 *.hpp  diff=cpp
 *.py   diff=python
+. svn-properties=svn:executable=tools/tools/git/git-svn-init

Modified: head/tools/tools/git/HOWTO
==
--- head/tools/tools/git/HOWTO  Thu Aug  2 18:24:03 2018(r337156)
+++ head/tools/tools/git/HOWTO  Thu Aug  2 18:28:02 2018(r337157)
@@ -157,3 +157,10 @@ and it will do its thing and leave the tree on the mas
 
 Your tree must be clean to start this, and while it tries to catch
 some failures, not all of them have been allowed for.
+
+IV. git-svn-init
+git-svn-init is a script that initializes the right git-svn connection as
+outlined in https://wiki.freebsd.org/GitWorkflow/GitSvn. It would be a 
precursor
+to the script git-svn-rebase. The script contains help, but generally you can
+run the script with no arguments and it will attempt to set up both src and
+ports repositories.

Added: head/tools/tools/git/git-svn-init
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/tools/tools/git/git-svn-init   Thu Aug  2 18:28:02 2018
(r337157)
@@ -0,0 +1,195 @@
+#!/bin/sh
+
+# $FreeBSD$
+
+# SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+#
+#  Copyright(c) 2018 Intel Corporation.
+#
+#  Redistribution and use in source and binary forms, with or without
+#  modification, are permitted provided that the following conditions
+#  are met:
+#  1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#  2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+#  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+#  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+#  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+#  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+#  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+#  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+#  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+#  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+#  SUCH DAMAGE.
+
+# This is the codified version of what was/is on the wiki page for using git in
+# your workflow. It sets up proper repositories, with the correct remotes.
+
+# Environment variables which can be overridden if desired. Not worth
+# parameterizing them.
+GIT_IN_PATH=$(which git)
+GIT=${GIT-${GIT_IN_PATH}}
+
+GIT_PORTS_REPO=${GIT_PORTS_REPO-git://github.com/freebsd/freebsd-ports.git}
+GIT_SVN_PORTS_ROOT_URI=${GIT_SVN_PORTS_ROOT_URI-svn.freebsd.org/ports}
+GIT_SVN_PORTS_URI=${GIT_SVN_PORTS_URI-repo.freebsd.org/ports}
+
+GIT_SRC_REPO=${GIT_SRC_REPO-git://github.com/freebsd/freebsd.git}
+GIT_SVN_SRC_ROOT_URI=${GIT_SVN_SRC_ROOT_URI-svn.freebsd.org/base}
+GIT_SVN_SRC_URI=${GIT_SVN_SRC_URI-repo.freebsd.org/base}
+
+GIT_SVN_PORTS_PUSH_URI=$GIT_SVN_PORTS_URI
+GIT_SVN_SRC_PUSH_URI=$GIT_SVN_SRC_URI
+
+usage()
+{
+   cat