build emergency with recent changes to updateSCCSVersions

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

build emergency with recent changes to updateSCCSVersions

Eliot Miranda-2
 
Hi All,

    recent changes, I *think* to updateSCCSVersions, have broken platforms/Cross/vm/sqSCCSVersion.h:

static char SvnRawRepositoryURL[] = "$URL: http://github.com/OpenSmalltalk/vm
    SetWindowLongPtr_64bit_compatibility new (next fetch will store in remotes/origin)
    tim/deployment-fixes                 new (next fetch will store in remotes/origin) $";

First, multi-liner string constants must be terminated with a backslash to compile.  So at the very least we'd need

static char SvnRawRepositoryURL[] = "$URL: <a href="http://github.com/OpenSmalltalk/vm\">http://github.com/OpenSmalltalk/vm\
    SetWindowLongPtr_64bit_compatibility new (next fetch will store in remotes/origin)\
    tim/deployment-fixes                 new (next fetch will store in remotes/origin) $";

But second, multi-line output doesn't make sense here.  We need something that fits on a single line.  Who is going to fix this?  I have a production build which is broken because of this.

_,,,^..^,,,_
best, Eliot
Reply | Threaded
Open this post in threaded view
|

Re: build emergency with recent changes to updateSCCSVersions

Tobias Pape

Hi Eliot,

On 21.06.2016, at 22:08, Eliot Miranda <[hidden email]> wrote:

> Hi All,
>
>     recent changes, I *think* to updateSCCSVersions, have broken platforms/Cross/vm/sqSCCSVersion.h:
>
> static char SvnRawRepositoryURL[] = "$URL: http://github.com/OpenSmalltalk/vm
>     SetWindowLongPtr_64bit_compatibility new (next fetch will store in remotes/origin)
>     tim/deployment-fixes                 new (next fetch will store in remotes/origin) $";

This is due to the line you added in .git_filters/RevDateURL.smudge:


 if (!$url) { $url=`git remote show origin | grep -i fetch | sed 's/^.*URL: //' 2>/dev/null` }

Problem being, the two lines match 'fetch' (next _fetch_ will store in ...), so you get more than the actual URL.

However, this has been fixed already, the current version from 24198c6
(see https://github.com/OpenSmalltalk/vm/commits/Cog/.git_filters/RevDateURL.smudge) has changed
and does not suffer from the grep. Relevant lines:


if ((defined $ENV{'TRAVIS'}) || (defined $ENV{'APPVEYOR'})) {
    $url=`git config --get remote.origin.url`;
} else {
    $url=`whoami` . '@' . `hostname` . ':' . `PWD=\$(pwd) echo \${PWD##\$HOME/}`;
}

Is your repo up to date?


Best regards
        -Tobias

>
> First, multi-liner string constants must be terminated with a backslash to compile.  So at the very least we'd need
>
> static char SvnRawRepositoryURL[] = "$URL: http://github.com/OpenSmalltalk/vm\
>     SetWindowLongPtr_64bit_compatibility new (next fetch will store in remotes/origin)\
>     tim/deployment-fixes                 new (next fetch will store in remotes/origin) $";
>
> But second, multi-line output doesn't make sense here.  We need something that fits on a single line.  Who is going to fix this?  I have a production build which is broken because of this.
>
> _,,,^..^,,,_
> best, Eliot


Reply | Threaded
Open this post in threaded view
|

Re: build emergency with recent changes to updateSCCSVersions

Eliot Miranda-2
 
Hi Tobias,

On Tue, Jun 21, 2016 at 1:37 PM, Tobias Pape <[hidden email]> wrote:

Hi Eliot,

On 21.06.2016, at 22:08, Eliot Miranda <[hidden email]> wrote:

> Hi All,
>
>     recent changes, I *think* to updateSCCSVersions, have broken platforms/Cross/vm/sqSCCSVersion.h:
>
> static char SvnRawRepositoryURL[] = "$URL: http://github.com/OpenSmalltalk/vm
>     SetWindowLongPtr_64bit_compatibility new (next fetch will store in remotes/origin)
>     tim/deployment-fixes                 new (next fetch will store in remotes/origin) $";

This is due to the line you added in .git_filters/RevDateURL.smudge:


 if (!$url) { $url=`git remote show origin | grep -i fetch | sed 's/^.*URL: //' 2>/dev/null` }

Problem being, the two lines match 'fetch' (next _fetch_ will store in ...), so you get more than the actual URL.

However, this has been fixed already, the current version from 24198c6
(see https://github.com/OpenSmalltalk/vm/commits/Cog/.git_filters/RevDateURL.smudge) has changed
and does not suffer from the grep. Relevant lines:


if ((defined $ENV{'TRAVIS'}) || (defined $ENV{'APPVEYOR'})) {
    $url=`git config --get remote.origin.url`;
} else {
    $url=`whoami` . '@' . `hostname` . ':' . `PWD=\$(pwd) echo \${PWD##\$HOME/}`;
}

Thanks.  So it was me :-(.  Good to know.
 
Is your repo up to date?

How do I know?  This "fetch and then diff" method is IMO broken.  I simply want to know whether there are incoming commits /before/ I do a fetch.

 


Best regards
        -Tobias

>
> First, multi-liner string constants must be terminated with a backslash to compile.  So at the very least we'd need
>
> static char SvnRawRepositoryURL[] = "$URL: <a href="http://github.com/OpenSmalltalk/vm\" rel="noreferrer" target="_blank">http://github.com/OpenSmalltalk/vm\
>     SetWindowLongPtr_64bit_compatibility new (next fetch will store in remotes/origin)\
>     tim/deployment-fixes                 new (next fetch will store in remotes/origin) $";
>
> But second, multi-line output doesn't make sense here.  We need something that fits on a single line.  Who is going to fix this?  I have a production build which is broken because of this.
>
> _,,,^..^,,,_
> best, Eliot





--
_,,,^..^,,,_
best, Eliot
Reply | Threaded
Open this post in threaded view
|

Re: build emergency with recent changes to updateSCCSVersions

Holger Freyther


> On 21 Jun 2016, at 23:37, Eliot Miranda <[hidden email]> wrote:
>

Hi Eliot,


> How do I know?  This "fetch and then diff" method is IMO broken.  I simply want to know whether there are incoming commits /before/ I do a fetch.

"fetch" will just update your remote (origin by default). Do you know "git ls-remote origin", is that closer to what you want?

holger
Reply | Threaded
Open this post in threaded view
|

Re: build emergency with recent changes to updateSCCSVersions

Tobias Pape
In reply to this post by Eliot Miranda-2


On 21.06.2016, at 23:37, Eliot Miranda <[hidden email]> wrote:

> Hi Tobias,
>
> On Tue, Jun 21, 2016 at 1:37 PM, Tobias Pape <[hidden email]> wrote:
>
> Hi Eliot,
>
> On 21.06.2016, at 22:08, Eliot Miranda <[hidden email]> wrote:
>
> > Hi All,
> >
> >     recent changes, I *think* to updateSCCSVersions, have broken platforms/Cross/vm/sqSCCSVersion.h:
> >
> > static char SvnRawRepositoryURL[] = "$URL: http://github.com/OpenSmalltalk/vm
> >     SetWindowLongPtr_64bit_compatibility new (next fetch will store in remotes/origin)
> >     tim/deployment-fixes                 new (next fetch will store in remotes/origin) $";
>
> This is due to the line you added in .git_filters/RevDateURL.smudge:
>
>
>  if (!$url) { $url=`git remote show origin | grep -i fetch | sed 's/^.*URL: //' 2>/dev/null` }
>
> Problem being, the two lines match 'fetch' (next _fetch_ will store in ...), so you get more than the actual URL.
>
> However, this has been fixed already, the current version from 24198c6
> (see https://github.com/OpenSmalltalk/vm/commits/Cog/.git_filters/RevDateURL.smudge) has changed
> and does not suffer from the grep. Relevant lines:
>
>
> if ((defined $ENV{'TRAVIS'}) || (defined $ENV{'APPVEYOR'})) {
>     $url=`git config --get remote.origin.url`;
> } else {
>     $url=`whoami` . '@' . `hostname` . ':' . `PWD=\$(pwd) echo \${PWD##\$HOME/}`;
> }
>
> Thanks.  So it was me :-(.  Good to know.
>  
> Is your repo up to date?
>
> How do I know?  This "fetch and then diff" method is IMO broken.  I simply want to know whether there are incoming commits /before/ I do a fetch.

Fetch means 'get what is on the server to me but no more'

I have a personal alias to see incoming changes:

        git config --global alias.incoming '!git remote update -p; git log ..@{u}'

I can then do `git incoming` and it fetches the changes but then only shows
the changes. So, after a fetch you can do

        git log ..@{u}

which means 'please show me all changes from here to what upstream has'

HTH
best
        -Tobias



>
>  
>
>
> Best regards
>         -Tobias
>
> >
> > First, multi-liner string constants must be terminated with a backslash to compile.  So at the very least we'd need
> >
> > static char SvnRawRepositoryURL[] = "$URL: http://github.com/OpenSmalltalk/vm\
> >     SetWindowLongPtr_64bit_compatibility new (next fetch will store in remotes/origin)\
> >     tim/deployment-fixes                 new (next fetch will store in remotes/origin) $";
> >
> > But second, multi-line output doesn't make sense here.  We need something that fits on a single line.  Who is going to fix this?  I have a production build which is broken because of this.
> >
> > _,,,^..^,,,_
> > best, Eliot



Reply | Threaded
Open this post in threaded view
|

Re: build emergency with recent changes to updateSCCSVersions

Eliot Miranda-2
In reply to this post by Holger Freyther
 
Hi Holger,

On Tue, Jun 21, 2016 at 2:42 PM, Holger Freyther <[hidden email]> wrote:


> On 21 Jun 2016, at 23:37, Eliot Miranda <[hidden email]> wrote:
>

Hi Eliot,


> How do I know?  This "fetch and then diff" method is IMO broken.  I simply want to know whether there are incoming commits /before/ I do a fetch.

"fetch" will just update your remote (origin by default). Do you know "git ls-remote origin", is that closer to what you want?

It doesn't help me.  I can't decode the commits into changes:

McStalker.oscogvm$ git ls-remote origin
3e19ff3d1924550911e5fc15bbbf5eb05f39320c        HEAD
3e19ff3d1924550911e5fc15bbbf5eb05f39320c        refs/heads/Cog
56c4157d4a41fbc6d8f98e241c4eec954d15ebd2        refs/heads/master
795791095cc6dbc63a8272d6481554cde8b976fd        refs/heads/oldTrunk
6879a597d5214e7cbb7ce329ef015ead2a7dffeb        refs/heads/platform/Cross/plugins
250ea8034ffccd0639910f2abac787573afb48dd        refs/heads/platform/win32/plugins
2fafe3d5bd3391b3151eb29a5b3221dc7ba18eff        refs/pull/10/head
cad7fcbdc2db887fd44ece95b8c5a5a2f9ed97e7        refs/pull/11/head
2fafe3d5bd3391b3151eb29a5b3221dc7ba18eff        refs/pull/8/head
d6d4215efc98645136ed420a69ceaf6f5f454b6c        refs/pull/8/merge

What makes sense to me is a list of changed files, and a further option to do a diff.  So I guess the fetch, diff approach is what I'll have to get used to.  What's the diff command to compare the current state of files (including unstaged modifications) against the last fetch?


And thanks for holding my hand here; I really appreciate everyone's patience and help.  I know I look really clumsy right now.  Hopefully the murk will clear and I'll learn before doing too much damage.

holger
 
_,,,^..^,,,_
best, Eliot
Reply | Threaded
Open this post in threaded view
|

Re: build emergency with recent changes to updateSCCSVersions

Eliot Miranda-2
In reply to this post by Tobias Pape
 
Hi Tobias,

On Tue, Jun 21, 2016 at 2:54 PM, Tobias Pape <[hidden email]> wrote:


On 21.06.2016, at 23:37, Eliot Miranda <[hidden email]> wrote:

> Hi Tobias,
>
> On Tue, Jun 21, 2016 at 1:37 PM, Tobias Pape <[hidden email]> wrote:
>
> Hi Eliot,
>
> On 21.06.2016, at 22:08, Eliot Miranda <[hidden email]> wrote:
>
> > Hi All,
> >
> >     recent changes, I *think* to updateSCCSVersions, have broken platforms/Cross/vm/sqSCCSVersion.h:
> >
> > static char SvnRawRepositoryURL[] = "$URL: http://github.com/OpenSmalltalk/vm
> >     SetWindowLongPtr_64bit_compatibility new (next fetch will store in remotes/origin)
> >     tim/deployment-fixes                 new (next fetch will store in remotes/origin) $";
>
> This is due to the line you added in .git_filters/RevDateURL.smudge:
>
>
>  if (!$url) { $url=`git remote show origin | grep -i fetch | sed 's/^.*URL: //' 2>/dev/null` }
>
> Problem being, the two lines match 'fetch' (next _fetch_ will store in ...), so you get more than the actual URL.
>
> However, this has been fixed already, the current version from 24198c6
> (see https://github.com/OpenSmalltalk/vm/commits/Cog/.git_filters/RevDateURL.smudge) has changed
> and does not suffer from the grep. Relevant lines:
>
>
> if ((defined $ENV{'TRAVIS'}) || (defined $ENV{'APPVEYOR'})) {
>     $url=`git config --get remote.origin.url`;
> } else {
>     $url=`whoami` . '@' . `hostname` . ':' . `PWD=\$(pwd) echo \${PWD##\$HOME/}`;
> }
>
> Thanks.  So it was me :-(.  Good to know.
>
> Is your repo up to date?
>
> How do I know?  This "fetch and then diff" method is IMO broken.  I simply want to know whether there are incoming commits /before/ I do a fetch.

Fetch means 'get what is on the server to me but no more'

I have a personal alias to see incoming changes:

        git config --global alias.incoming '!git remote update -p; git log ..@{u}'

I can then do `git incoming` and it fetches the changes but then only shows
the changes. So, after a fetch you can do

        git log ..@{u}

which means 'please show me all changes from here to what upstream has'

Ah, this looks like it could be what I want.  So where should one put the git config command?  Run it once in one's .profile?  Add it to some configuration file?
 
HTH
best
        -Tobias

> Best regards
>         -Tobias
>
> >
> > First, multi-liner string constants must be terminated with a backslash to compile.  So at the very least we'd need
> >
> > static char SvnRawRepositoryURL[] = "$URL: <a href="http://github.com/OpenSmalltalk/vm\" rel="noreferrer" target="_blank">http://github.com/OpenSmalltalk/vm\
> >     SetWindowLongPtr_64bit_compatibility new (next fetch will store in remotes/origin)\
> >     tim/deployment-fixes                 new (next fetch will store in remotes/origin) $";
> >
> > But second, multi-line output doesn't make sense here.  We need something that fits on a single line.  Who is going to fix this?  I have a production build which is broken because of this.
> >
> > _,,,^..^,,,_
> > best, Eliot






--
_,,,^..^,,,_
best, Eliot
Reply | Threaded
Open this post in threaded view
|

Re: build emergency with recent changes to updateSCCSVersions

Tobias Pape
In reply to this post by Tobias Pape


On 21.06.2016, at 23:54, Tobias Pape <[hidden email]> wrote:

>
> On 21.06.2016, at 23:37, Eliot Miranda <[hidden email]> wrote:
>
>> Hi Tobias,
>>
>> On Tue, Jun 21, 2016 at 1:37 PM, Tobias Pape <[hidden email]> wrote:
>>
>> Hi Eliot,
>>
>> On 21.06.2016, at 22:08, Eliot Miranda <[hidden email]> wrote:
>>
>>> Hi All,
>>>
>>>    recent changes, I *think* to updateSCCSVersions, have broken platforms/Cross/vm/sqSCCSVersion.h:
>>>
>>> static char SvnRawRepositoryURL[] = "$URL: http://github.com/OpenSmalltalk/vm
>>>    SetWindowLongPtr_64bit_compatibility new (next fetch will store in remotes/origin)
>>>    tim/deployment-fixes                 new (next fetch will store in remotes/origin) $";
>>
>> This is due to the line you added in .git_filters/RevDateURL.smudge:
>>
>>
>> if (!$url) { $url=`git remote show origin | grep -i fetch | sed 's/^.*URL: //' 2>/dev/null` }
>>
>> Problem being, the two lines match 'fetch' (next _fetch_ will store in ...), so you get more than the actual URL.
>>
>> However, this has been fixed already, the current version from 24198c6
>> (see https://github.com/OpenSmalltalk/vm/commits/Cog/.git_filters/RevDateURL.smudge) has changed
>> and does not suffer from the grep. Relevant lines:
>>
>>
>> if ((defined $ENV{'TRAVIS'}) || (defined $ENV{'APPVEYOR'})) {
>>    $url=`git config --get remote.origin.url`;
>> } else {
>>    $url=`whoami` . '@' . `hostname` . ':' . `PWD=\$(pwd) echo \${PWD##\$HOME/}`;
>> }
>>
>> Thanks.  So it was me :-(.  Good to know.
>>
>> Is your repo up to date?
>>
>> How do I know?  This "fetch and then diff" method is IMO broken.  I simply want to know whether there are incoming commits /before/ I do a fetch.
>
> Fetch means 'get what is on the server to me but no more'
>
> I have a personal alias to see incoming changes:
>
> git config --global alias.incoming '!git remote update -p; git log ..@{u}'
>
> I can then do `git incoming` and it fetches the changes but then only shows
> the changes. So, after a fetch you can do
>
> git log ..@{u}
>
> which means 'please show me all changes from here to what upstream has'
>
> HTH
> best
> -Tobias
>

PS: git log accepts the --patch option, which adds a diff to all commit messages.
so you can also do

        git log ..@{u} --patch

or with the alias:

        git incoming --patch

>
>
>>
>>
>>
>>
>> Best regards
>>        -Tobias
>>
>>>
>>> First, multi-liner string constants must be terminated with a backslash to compile.  So at the very least we'd need
>>>
>>> static char SvnRawRepositoryURL[] = "$URL: http://github.com/OpenSmalltalk/vm\
>>>    SetWindowLongPtr_64bit_compatibility new (next fetch will store in remotes/origin)\
>>>    tim/deployment-fixes                 new (next fetch will store in remotes/origin) $";
>>>
>>> But second, multi-line output doesn't make sense here.  We need something that fits on a single line.  Who is going to fix this?  I have a production build which is broken because of this.
>>>
>>> _,,,^..^,,,_
>>> best, Eliot
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: build emergency with recent changes to updateSCCSVersions

Tobias Pape
In reply to this post by Eliot Miranda-2


On 22.06.2016, at 00:00, Eliot Miranda <[hidden email]> wrote:

> Hi Tobias,
>
> On Tue, Jun 21, 2016 at 2:54 PM, Tobias Pape <[hidden email]> wrote:
>
>
> On 21.06.2016, at 23:37, Eliot Miranda <[hidden email]> wrote:
>
> > Hi Tobias,
> >
> > On Tue, Jun 21, 2016 at 1:37 PM, Tobias Pape <[hidden email]> wrote:
> >
> > Hi Eliot,
> >
> > On 21.06.2016, at 22:08, Eliot Miranda <[hidden email]> wrote:
> >
> > > Hi All,
> > >
> > >     recent changes, I *think* to updateSCCSVersions, have broken platforms/Cross/vm/sqSCCSVersion.h:
> > >
> > > static char SvnRawRepositoryURL[] = "$URL: http://github.com/OpenSmalltalk/vm
> > >     SetWindowLongPtr_64bit_compatibility new (next fetch will store in remotes/origin)
> > >     tim/deployment-fixes                 new (next fetch will store in remotes/origin) $";
> >
> > This is due to the line you added in .git_filters/RevDateURL.smudge:
> >
> >
> >  if (!$url) { $url=`git remote show origin | grep -i fetch | sed 's/^.*URL: //' 2>/dev/null` }
> >
> > Problem being, the two lines match 'fetch' (next _fetch_ will store in ...), so you get more than the actual URL.
> >
> > However, this has been fixed already, the current version from 24198c6
> > (see https://github.com/OpenSmalltalk/vm/commits/Cog/.git_filters/RevDateURL.smudge) has changed
> > and does not suffer from the grep. Relevant lines:
> >
> >
> > if ((defined $ENV{'TRAVIS'}) || (defined $ENV{'APPVEYOR'})) {
> >     $url=`git config --get remote.origin.url`;
> > } else {
> >     $url=`whoami` . '@' . `hostname` . ':' . `PWD=\$(pwd) echo \${PWD##\$HOME/}`;
> > }
> >
> > Thanks.  So it was me :-(.  Good to know.
> >
> > Is your repo up to date?
> >
> > How do I know?  This "fetch and then diff" method is IMO broken.  I simply want to know whether there are incoming commits /before/ I do a fetch.
>
> Fetch means 'get what is on the server to me but no more'
>
> I have a personal alias to see incoming changes:
>
>         git config --global alias.incoming '!git remote update -p; git log ..@{u}'
>
> I can then do `git incoming` and it fetches the changes but then only shows
> the changes. So, after a fetch you can do
>
>         git log ..@{u}
>
> which means 'please show me all changes from here to what upstream has'
>
> Ah, this looks like it could be what I want.  So where should one put the git config command?  Run it once in one's .profile?  Add it to some configuration file?

here are my aliases

$ cat ~/.gitconfig
[alias]
    st = status
    co = checkout
    glog = log --graph --pretty=awesome --abbrev-commit --date=relative
    news = !git glog $(git log --author="\"$(git config user.name)\"" --pretty=format:%H -n1)..
    log-me = !UN=$(git config user.name)&& git log --author="\"$UN\"" --pretty=format:'%h %cd %s' --date=short
    log-nice  = log --graph --decorate --pretty=oneline --abbrev-commit
    panic     = !tar cvf ../git_panic.tar *
    wdiff = diff --color-words
    incoming = "!git remote update -p; git log ..@{u}"
    outgoing = log @{u}..
    ap = add --patch
    up = "!git remote update -p; git merge --ff-only @{u}"

Explanations:
st,co from my svn days
glog nice, concise log with graph
news graph log with changes by other people
log-me changes by me
log-nice like glog, but different (not very interessting)
panic put away everything i have into a tar
wdiff Thats a nice one: like diff, but per-word not per-line
incoming explained above
outgoing which commits will be pushed when I say git push?
ap I found myself saying 'git add --patch' so often I needed this. It's always worth a try
up Similar to pull, but will only update when no merge is necessary


Most of them are personal taste and convenience but I thought they can be an inspiration.

Best
        -Tobias


>  
> HTH
> best
>         -Tobias
>
> > Best regards
> >         -Tobias
> >
> > >
> > > First, multi-liner string constants must be terminated with a backslash to compile.  So at the very least we'd need
> > >
> > > static char SvnRawRepositoryURL[] = "$URL: http://github.com/OpenSmalltalk/vm\
> > >     SetWindowLongPtr_64bit_compatibility new (next fetch will store in remotes/origin)\
> > >     tim/deployment-fixes                 new (next fetch will store in remotes/origin) $";
> > >
> > > But second, multi-line output doesn't make sense here.  We need something that fits on a single line.  Who is going to fix this?  I have a production build which is broken because of this.
> > >
> > > _,,,^..^,,,_
> > > best, Eliot



Reply | Threaded
Open this post in threaded view
|

Re: build emergency with recent changes to updateSCCSVersions

Jakob Reschke-2
In reply to this post by Tobias Pape
 
2016-06-22 0:00 GMT+02:00 Eliot Miranda <[hidden email]>:
>  So where should one put the git config command?

You should run it only once. git config reads and edits settings for
you; git config --global edits your ~/.gitconfig file. If you like,
you can edit the file directly instead.