Re: Working on scheme engravers

2010-01-23 Thread Trevor Daniels

Hi Eric

I'm a relative newcomer to Lily development too,
so it's best to keep these questions and answers
on the -devel list.  That way others can chip in
to correct anything I say that is wrong and suggest
alternative and probably better ways of achieving
what you want to do.

I've tried to answer some of your questions below,
and left your mail unaltered so others can see the
full content.

Trevor


Eric Knapp wrote Friday, January 22, 2010 5:43 PM
Subject: Re: Working on scheme engravers




Thanks, Trevor.

I have gotten this to work with the following code:

  (cons 'note-event (lambda (engraver event)
(display (list "\n\nEngraver: \n" engraver "\n\n"))
(let*
  (
(arts (ly:event-property event 'articulations)
  )
  (finger-found #f)
  (string-found #f))

  (map (lambda (arts)
 (let*
   ((digit-num (ly:event-property arts 'digit))
(string-num (ly:event-property arts 
'string-number)))
   (if (and (eq? 'string-number-event 
(ly:event-property arts 'class))

   (number? string-num))
 (set! string-found string-num)
   )
   (if (and (eq? 'fingering-event (ly:event-property 
arts 'class))

   (number? digit-num))
 (set! finger-found digit-num)
   )
 )
  )
  arts)
  (display (list "\n\nFinger: " finger-found "\nString: "
string-found "\n\n"))
  )))

Now I'm on to the next step. Now that I have the finger and string
numbers, I have to do the following:

1. Prevent drawing of the notehead.


You may find it best to set up a custom context
or contexts eventually, but for now just remove
any engravers you don't need.  Look at the
definitions of TabStaff and TabVoice in
ly/engraver-init.ly for inspiration.  This might
suggest other things you might want to adjust too.


2. Prevent drawing of the fingering number.


See (1)

3. Draw custom notehead or glyph depending on finger number. Maybe 
I

could use a custom font here? A font for this already exists for
Finale. There are Postscript Type 1 and TrueType versions.


If you intend eventually adding this to the LilyPond
distribution be sure any fonts you use have a GPL
license or be public domain.  Or if you design them
yourself be prepared to release them under GPL 3.

The code which generates these in tabulation is in
scm/translation-functions.scm.  I, Carl and possibly
others are modifying this file at present, so I can't
give an exact line number, but if you search for
TabNoteHead you'll find it.


4. Prevent drawing of string number.


See (1)

5. Draw a small rectangle on the staff line that corresponds to 
the

string number.


The routines mentioned in (3) should give you some
hints.  The markup command for rounded-box is probably
the one you need.

6. Calculate the fret based on the note and string and display a 
fret

number above or below the staff.


See (3)

I'm looking through the code in the scm directory looking for 
examples
of doing things like this. Where should I be looking for examples? 
I
have some music functions that do this but they can't do 
everything.


Hope the clues above will help.  I'm sure others will
chip in if there are better suggestions.


Thanks again for the help.


You're welcome


-Eric
Trevor 





___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: compiling confusion (task cycles)

2010-01-23 Thread Trevor Daniels


Mark Polesky wrote Saturday, January 23, 2010 6:45 AM



Carl Sorensen wrote:


My cycle is to

[edit source files]
make (if needed)


You lost me there.  How will I know if `make' is needed?


If you modify any source files that have to be
compiled, essentially the c++ files and their
includes and macros in the ly and flower directories,
then you -must- run make, which will invoke the c++
compiler to compile the modified files (only) and 
relink all the object files.


If you only modify files which are interpreted,
like those in the scm and ly directories, then
make is not needed.

If you modify any font definitions in the mf
directory then you -must- run make clean and
make.  This will recompile everything, whether
modified or not, and takes a lot longer.

Trevor




___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: compiling confusion (task cycles)

2010-01-23 Thread John Mandereau
Le vendredi 22 janvier 2010 à 22:45 -0800, Mark Polesky a écrit :
> I could be wrong, but it looks like `test-redo' accomplishes
> (automatically) what you're doing manually in your step "run
> the individual regression files..."  The CG says that it
> will "redo files differing from baseline".

Just look at the beginning of the output of test-redo to see whether the
target all is actually called (or no target), looking at the make
commands to recurse into subdirectories you can't miss it, and you'll be
confirmed (or not).


> > [edit source files]
> > make (if needed)
> 
> You lost me there.  How will I know if `make' is needed?  I
> wonder if `test-redo' does this as well, whatever it is...

As for 'make all', it usually takes me more time to think whether I
should invoke it than invoking it without thinking.  As for 'make doc',
this is the opposite :-P


> One last question:  You use `-j' and `CPU_COUNT' for
> `make doc'.  Graham recommends using `-j' but not
> `CPU_COUNT' for `make'.  Are there any other `make' targets
> that would benefit from either or both of these?
> 
> Like:
>   make -j3 test-baseline
>   make -j3 CPU_COUNT=3 check

CPU_COUNT is useful whenever lilypond-book is used and calls LilyPond on
a lot of snippets.  FWIW I almost never set this variable from the
command line but set it in local.make.

Cheers,
John



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: [PATCH]: New G clef

2010-01-23 Thread Marc Hohl

Carl Sorensen schrieb:

Marc Hohl has worked on a new G clef that is rotated about 1.5 degrees
clockwise to improve its balance, as suggested by Jan

(see 
)


A 1200-dpi png is available at

http://www.hohlart.de/marc/gcleftest.png

A patch is available on rietveld at

http://codereview.appspot.com/183103

Please review and comment.
  

I like it ;-)

Are there any objections?

Marc

Thanks,

Carl


  




___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


`make all' broken?

2010-01-23 Thread Patrick McCarty
Hi,

Compiling from scratch on latest master, I get this output:

  Compiling /home/pnorcks/git/lilypond/Documentation/out/fdl.texi...
  /home/pnorcks/git/lilypond/Documentation/out/fdl.texi is up to date.
  lilypond-book.py (GNU LilyPond) 2.13.12
  BSTINPUTS=./essay /home/pnorcks/git/lilypond/scripts/build/out/bib2html \
  -o ./out/colorado.html \
  ./essay/colorado.bib

  bibtex: Not writing to /tmp/tmpSnvwo5bib2html.blg (openout_any = p).
  I couldn't open file name `/tmp/tmpSnvwo5bib2html.blg'
  Invoking `bibtex /tmp/tmpSnvwo5bib2html'
  make[1]: *** [out/engravingbib.itexi] Error 1
  rm out/weblinks.itexi
  make[1]: Leaving directory `/home/pnorcks/git/lilypond/Documentation'
  make: *** [all] Error 2


I assume this is related to the bibliography "hack".  Graham, do you
know what's wrong here?

Thanks,
Patrick


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: `make all' broken?

2010-01-23 Thread Graham Percival
On Sat, Jan 23, 2010 at 02:54:16AM -0800, Patrick McCarty wrote:
>   BSTINPUTS=./essay /home/pnorcks/git/lilypond/scripts/build/out/bib2html \
> -o ./out/colorado.html \
> ./essay/colorado.bib
> 
>   bibtex: Not writing to /tmp/tmpSnvwo5bib2html.blg (openout_any = p).
>   I couldn't open file name `/tmp/tmpSnvwo5bib2html.blg'

What version of bibtex do you have?
  bibtex -version

This program hasn't been used in lilypond compiling for a year or
more, so I'm not surprised that some people will encounter
problems.  OTOH, that command is (afaik) the same as the old one.

Try going to Documentation/essay/ and uncommenting the local-WWW-2
line, then do "make doc" (in that directory).  I'm curious about
whether it'll fail in exactly the same way.

Cheers,
- Graham


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: compiling confusion (task cycles)

2010-01-23 Thread Carl Sorensen



On 1/22/10 11:45 PM, "Mark Polesky"  wrote:

> Carl Sorensen wrote:
>> I've never used make test-redo or make test-clean.  I'd
>> like to have some clarification on what they're used for.
> 
> I could be wrong, but it looks like `test-redo' accomplishes
> (automatically) what you're doing manually in your step "run
> the individual regression files..."  The CG says that it
> will "redo files differing from baseline".

Not quite the same.  In order to redo files differing from the baseline
you need to first have a make check complete.

When I'm working on a bug, the bug is demonstrated in a particular
regression test.  I want to test that regression test (and only that
regression test) until I have the regression solved.

It takes a long time to run the whole regression test suite; it takes almost
no time to run a single regression test.

> 
>> My cycle is to
>> 
>> [edit source files]
>> make (if needed)
> 
> You lost me there.  How will I know if `make' is needed?  I
> wonder if `test-redo' does this as well, whatever it is...

As John mentioned, you must do make if you edit a c++ file, a
header file.  If you only edit .scm or .ly files, you don't need
make.

> 
>> run the individual regression files to see that the
>>   regression is solved
>> Once I'm pretty sure it's right, I run
>>   make check
>>   to make sure I haven't broken anything.
> 
> One last question:  You use `-j' and `CPU_COUNT' for
> `make doc'.  Graham recommends using `-j' but not
> `CPU_COUNT' for `make'.  Are there any other `make' targets
> that would benefit from either or both of these?
> 
> Like:
>   make -j3 test-baseline
>   make -j3 CPU_COUNT=3 check

-j3 is the option that allows make to use multiple processors in parallel;
CPU_COUNT=3 is the option that allows lilypond-book to use multiple
processors in parallel, IIUC.

HTH,

Carl



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: compiling confusion (task cycles)

2010-01-23 Thread Carl Sorensen



On 1/23/10 6:34 AM, "Carl Sorensen"  wrote:

> 
> 
> 
> 
> On 1/22/10 11:45 PM, "Mark Polesky"  wrote:
> 
>> Carl Sorensen wrote:
>>> I've never used make test-redo or make test-clean.  I'd
>>> like to have some clarification on what they're used for.
>> 
>> I could be wrong, but it looks like `test-redo' accomplishes
>> (automatically) what you're doing manually in your step "run
>> the individual regression files..."  The CG says that it
>> will "redo files differing from baseline".
> 
> Not quite the same.  In order to redo files differing from the baseline
> you need to first have a make check complete.
> 
> When I'm working on a bug, the bug is demonstrated in a particular
> regression test.  I want to test that regression test (and only that
> regression test) until I have the regression solved.
> 
> It takes a long time to run the whole regression test suite; it takes almost
> no time to run a single regression test.

Oh, I understand now.  I apologize for the confusion.  When I'm working on a
bugfix I add the bug file to the regression tests before I start work on the
bug.  But that's not how the regression tests are usually used.

make test-redo is useful when a bug fix has introduced a regression; the
object of make test-redo is to get it so that no regression tests differ
from the baseline (except the newly-added ones and spacing-check).

Now I can see where I will use make test-redo in the future.  I've not used
it well in the past.

Thanks,

Carl



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: PATCH: Use same fret-assignment code for FretBoards and TabStaff

2010-01-23 Thread Neil Puttock
Hi Carl,

On 22 January 2010 03:14, Carl Sorensen  wrote:

> Please review the patch at
>
> http://codereview.appspot.com/186268/show

I'll post some comments on Rietveld soon.

Cheers,
Neil


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Make tab-note-heads and fretboards use common code. (issue186268)

2010-01-23 Thread n . puttock


http://codereview.appspot.com/186268/diff/1/2
File lily/fretboard-engraver.cc (left):

http://codereview.appspot.com/186268/diff/1/2#oldcode100
lily/fretboard-engraver.cc:100: SCM changes =
get_property("chordChanges");
get_property (

http://codereview.appspot.com/186268/diff/1/2#oldcode101
lily/fretboard-engraver.cc:101: if (to_boolean (changes) &&
scm_is_pair(last_fret_notes_)
scm_is_pair (

http://codereview.appspot.com/186268/diff/1/2
File lily/fretboard-engraver.cc (right):

http://codereview.appspot.com/186268/diff/1/2#newcode96
lily/fretboard-engraver.cc:96: ly_cxx_vector_to_list
(tabstring_events_),
indent (hard tabs)

(and below in ADD_TRANSLATOR ())

http://codereview.appspot.com/186268/diff/1/3
File lily/tab-note-heads-engraver.cc (right):

http://codereview.appspot.com/186268/diff/1/3#newcode81
lily/tab-note-heads-engraver.cc:81: vector string_events;
Stream_event *

http://codereview.appspot.com/186268/diff/1/3#newcode106
lily/tab-note-heads-engraver.cc:106: a string_event is generated, so if
there was no string
string-number-event

http://codereview.appspot.com/186268/diff/1/3#newcode136
lily/tab-note-heads-engraver.cc:136: SCM pos_proc = get_property
("tablatureStaffPosition");
For normal staves, we have staffLineLayoutFunction, so something similar
would be better (though tabStaffLineLayoutFunction is a bit cumbersome).

http://codereview.appspot.com/186268/diff/1/3#newcode139
lily/tab-note-heads-engraver.cc:139: for (int i=0; i < scm_to_int
(scm_length (string_fret_finger)); i++)
(int i = 0; i < scm_ilength (string_fret_finger)); i++)

http://codereview.appspot.com/186268/diff/1/3#newcode149
lily/tab-note-heads-engraver.cc:149: context ()->self_scm ());
More a general comment, but we're lacking consistency in argument
ordering for translation functions: some start with the context, whereas
others place it last.

Since you're adding a rest arg to one of the functions, perhaps we
should settle for context first for all functions.

http://codereview.appspot.com/186268/diff/1/4
File ly/engraver-init.ly (right):

http://codereview.appspot.com/186268/diff/1/4#newcode621
ly/engraver-init.ly:621: %% One may change the string tunings as
following :
follows:

http://codereview.appspot.com/186268/diff/1/6
File scm/define-context-properties.scm (right):

http://codereview.appspot.com/186268/diff/1/6#newcode353
scm/define-context-properties.scm:353: tabstring events, a boolean
defining whether to make a fretboard,
I assume you removed the boolean arg in an earlier revision.

http://codereview.appspot.com/186268/diff/1/6#newcode460
scm/define-context-properties.scm:460: note head.  Called with two
arguments: string number and a fret number
Removing the context makes this less flexible.

http://codereview.appspot.com/186268/diff/1/7
File scm/translation-functions.scm (right):

http://codereview.appspot.com/186268/diff/1/7#newcode193
scm/translation-functions.scm:193: (acons 'string-count my-string-count
'())
If details is null, then this line is equivalent to the following line.

http://codereview.appspot.com/186268/diff/1/7#newcode218
scm/translation-functions.scm:218: (map (lambda (x) (list 'mute  (1+
x)))
'mute (1+ x)

http://codereview.appspot.com/186268/diff/1/7#newcode236
scm/translation-functions.scm:236: "Convert @var{placement-list} to
string-fret list."
indentation

http://codereview.appspot.com/186268/diff/1/7#newcode284
scm/translation-functions.scm:284: (determine-frets-and-strings
indentation

(and following lines)

http://codereview.appspot.com/186268/diff/1/7#newcode287
scm/translation-functions.scm:287: (ensure-number
Default for ly:context-property instead?

http://codereview.appspot.com/186268/diff/1/7#newcode377
scm/translation-functions.scm:377: ;;; body of
determined-frets-and-strings
determine

http://codereview.appspot.com/186268/diff/1/7#newcode419
scm/translation-functions.scm:419: ((= 0 (length labels))
Need to keep context to read fretLabels

http://codereview.appspot.com/186268/diff/1/7#newcode420
scm/translation-functions.scm:420: (string (integer->char (+ fret
(char->integer #\a)
fret-number

(same below)

http://codereview.appspot.com/186268/diff/1/7#newcode432
scm/translation-functions.scm:432: (format "~a" fret-number)))
indent

http://codereview.appspot.com/186268/diff/1/7#newcode442
scm/translation-functions.scm:442: (number->string (cond
indent

http://codereview.appspot.com/186268/show


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: `make all' broken?

2010-01-23 Thread Patrick McCarty
On 2010-01-23, Graham Percival wrote:
> On Sat, Jan 23, 2010 at 02:54:16AM -0800, Patrick McCarty wrote:
> >   BSTINPUTS=./essay /home/pnorcks/git/lilypond/scripts/build/out/bib2html \
> >   -o ./out/colorado.html \
> >   ./essay/colorado.bib
> > 
> >   bibtex: Not writing to /tmp/tmpSnvwo5bib2html.blg (openout_any = p).
> >   I couldn't open file name `/tmp/tmpSnvwo5bib2html.blg'
> 
> What version of bibtex do you have?
>   bibtex -version

BibTeX 0.99c (TeX Live 2009/Arch Linux)

> This program hasn't been used in lilypond compiling for a year or
> more, so I'm not surprised that some people will encounter
> problems.  OTOH, that command is (afaik) the same as the old one.
> 
> Try going to Documentation/essay/ and uncommenting the local-WWW-2
> line, then do "make doc" (in that directory).  I'm curious about
> whether it'll fail in exactly the same way.

Sorry for the noise.  This was caused by my TeX Live update yesterday.
Downgrading fixed it.

Arch Linux has a rolling-release policy, even for TeX Live, and
occasionally something breaks.

Looks like I won't be upgrading TeX Live for a while!

Thanks,
Patrick


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


grand-replace.py in CG

2010-01-23 Thread Graham Percival
Hi Nick,

Could you add some info about grand-replace.py to the CG?  I'm
thinking in the "release work" chapter, in the "administrative
policies" section.

We might split some of this chapter off into a "general
maintenance" chapter, but I'd like to get the info in the CG
_somewhere_ before we forget.

Cheers,
- Graham


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Make tab-note-heads and fretboards use common code. (issue186268)

2010-01-23 Thread Carl . D . Sorensen

Reviewers: Neil Puttock,

Message:
Neil,

Thanks for the careful review.

I think I've dealt with everything, but there is still an open question
on ly:context-property.  As far as I can see, there is not currently a
means of putting a default in the ly:context-property call.  I can see
that it would be
good to have that.  I'm not sure I know how to do it, but I'll look into
it.

Thanks again,

Carl



http://codereview.appspot.com/186268/diff/1/2
File lily/fretboard-engraver.cc (right):

http://codereview.appspot.com/186268/diff/1/2#newcode96
lily/fretboard-engraver.cc:96: ly_cxx_vector_to_list
(tabstring_events_),
On 2010/01/23 16:42:33, Neil Puttock wrote:

indent (hard tabs)



(and below in ADD_TRANSLATOR ())


Done.

http://codereview.appspot.com/186268/diff/1/3
File lily/tab-note-heads-engraver.cc (right):

http://codereview.appspot.com/186268/diff/1/3#newcode81
lily/tab-note-heads-engraver.cc:81: vector string_events;
On 2010/01/23 16:42:33, Neil Puttock wrote:

Stream_event *


Done.

http://codereview.appspot.com/186268/diff/1/3#newcode106
lily/tab-note-heads-engraver.cc:106: a string_event is generated, so if
there was no string
On 2010/01/23 16:42:33, Neil Puttock wrote:

string-number-event




Done.

http://codereview.appspot.com/186268/diff/1/3#newcode136
lily/tab-note-heads-engraver.cc:136: SCM pos_proc = get_property
("tablatureStaffPosition");
On 2010/01/23 16:42:33, Neil Puttock wrote:

For normal staves, we have staffLineLayoutFunction, so something

similar would

be better (though tabStaffLineLayoutFunction is a bit cumbersome).


Done.

http://codereview.appspot.com/186268/diff/1/3#newcode139
lily/tab-note-heads-engraver.cc:139: for (int i=0; i < scm_to_int
(scm_length (string_fret_finger)); i++)
On 2010/01/23 16:42:33, Neil Puttock wrote:

(int i = 0; i < scm_ilength (string_fret_finger)); i++)


Done.

http://codereview.appspot.com/186268/diff/1/3#newcode149
lily/tab-note-heads-engraver.cc:149: context ()->self_scm ());
On 2010/01/23 16:42:33, Neil Puttock wrote:

More a general comment, but we're lacking consistency in argument

ordering for

translation functions: some start with the context, whereas others

place it

last.



Since you're adding a rest arg to one of the functions, perhaps we

should settle

for context first for all functions.



Done.

http://codereview.appspot.com/186268/diff/1/4
File ly/engraver-init.ly (right):

http://codereview.appspot.com/186268/diff/1/4#newcode621
ly/engraver-init.ly:621: %% One may change the string tunings as
following :
On 2010/01/23 16:42:33, Neil Puttock wrote:

follows:


Done.

http://codereview.appspot.com/186268/diff/1/6
File scm/define-context-properties.scm (right):

http://codereview.appspot.com/186268/diff/1/6#newcode353
scm/define-context-properties.scm:353: tabstring events, a boolean
defining whether to make a fretboard,
On 2010/01/23 16:42:33, Neil Puttock wrote:

I assume you removed the boolean arg in an earlier revision.


Oops -- yes I did.  I wanted a boolean, but there is not a scm_call_5,
and anytime the boolean was true I needed a grob, so I just used the
grob as the fretboard indicator.

Fixed.

http://codereview.appspot.com/186268/diff/1/6#newcode460
scm/define-context-properties.scm:460: note head.  Called with two
arguments: string number and a fret number
On 2010/01/23 16:42:33, Neil Puttock wrote:

Removing the context makes this less flexible.


Done.

http://codereview.appspot.com/186268/diff/1/7
File scm/translation-functions.scm (right):

http://codereview.appspot.com/186268/diff/1/7#newcode193
scm/translation-functions.scm:193: (acons 'string-count my-string-count
'())
On 2010/01/23 16:42:33, Neil Puttock wrote:

If details is null, then this line is equivalent to the following

line.

D'oh! This was old code that I just moved in the file.  Good catch!

Fixed

http://codereview.appspot.com/186268/diff/1/7#newcode218
scm/translation-functions.scm:218: (map (lambda (x) (list 'mute  (1+
x)))
On 2010/01/23 16:42:33, Neil Puttock wrote:

'mute (1+ x)


Done.

http://codereview.appspot.com/186268/diff/1/7#newcode236
scm/translation-functions.scm:236: "Convert @var{placement-list} to
string-fret list."
On 2010/01/23 16:42:33, Neil Puttock wrote:

indentation


What is the indentation issue here?

http://codereview.appspot.com/186268/diff/1/7#newcode287
scm/translation-functions.scm:287: (ensure-number
On 2010/01/23 16:42:33, Neil Puttock wrote:

Default for ly:context-property instead?


Do you mean to modify ly:context-property so that it asks for a
(probably optional) default, and then returns the default if the
property isn't found?

http://codereview.appspot.com/186268/diff/1/7#newcode377
scm/translation-functions.scm:377: ;;; body of
determined-frets-and-strings
On 2010/01/23 16:42:33, Neil Puttock wrote:

determine


Done.

http://codereview.appspot.com/186268/diff/1/7#newcode419
scm/translation-functions.scm:419: ((= 0 (length labels))
On 2010/01/23 16:42:33, Neil Puttock wrote:

Need to keep context 

Re: `make all' broken?

2010-01-23 Thread Patrick McCarty
On 2010-01-23, Patrick McCarty wrote:
> On 2010-01-23, Graham Percival wrote:
> > On Sat, Jan 23, 2010 at 02:54:16AM -0800, Patrick McCarty wrote:
> > >   BSTINPUTS=./essay /home/pnorcks/git/lilypond/scripts/build/out/bib2html 
> > > \
> > > -o ./out/colorado.html \
> > > ./essay/colorado.bib
> > > 
> > >   bibtex: Not writing to /tmp/tmpSnvwo5bib2html.blg (openout_any = p).
> > >   I couldn't open file name `/tmp/tmpSnvwo5bib2html.blg'
> > 
> > What version of bibtex do you have?
> >   bibtex -version
> 
> BibTeX 0.99c (TeX Live 2009/Arch Linux)

I submitted a bug report to the Arch Linux tracker, since this might
be a packaging bug.

Here's the link in case anyone else has the same problem as me and
wants to follow the status:

http://bugs.archlinux.org/task/17978

Thanks,
Patrick


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


rebasing multiple git branches at once

2010-01-23 Thread Mark Polesky
I wrote a little shell script to rebase all my local git
branches at once.  However, reading the git-pull man page
makes me wonder if there's not some tragedy waiting to
happen.  The script is designed for developers who are only
tracking the `master' branch (translators shouldn't rebase
too casually anyway).

So, is this a dumb idea for some reason?  Or is it useful
enough to add to scripts/auxiliar/?  Right now, I have six
local branches, and individually doing `git pull -r' was
just getting me down.  Actually, this script speeds up the
process even more: it only pulls for `master', then rebases
the other branches to the updated local master (which is
much faster than pulling for each).

It also will abort any rebase at the slightest sign of a
problem, and report individual problems when it's finished,
so I think it's safe.  But I'd like to know what you guys
think.

Thanks.
- Mark


  #!/bin/bash

# rebase-all.sh -- attempt to rebase all local git
#  branches to current `origin/master'


# remember where we started
starting_branch=`git branch | sed -n 's/^\* //p'`


return_from_branch () {
  if [[ $1 != $starting_branch ]]; then
echo
git checkout $starting_branch
  fi
}

rebase_abort_verbose () {
  echo "Aborting rebase on branch '$1'..." >&2
  git rebase --abort
  git status
}


# exit now if we can't checkout master
if [[ $starting_branch != master ]]; then
  git checkout master || exit 1
fi


# update master
if ! git pull --rebase; then
  rebase_abort_verbose master
  return_from_branch master
  echo -e "\nERROR: There was a problem with 'master'." \
  "\n   No branches were rebased." >&2
  exit 1
fi


# sed removes current branch `* master' from rebase_list
# `--reverse' leaves local branches properly sorted in gitk.
rebase_list=`git branch | sed '/^\*/d' | sort --reverse`


# rebase local branches to master where possible
failed_branches=""
for branch in $rebase_list; do
  echo
  if ! git rebase master $branch; then
failed_branches="$failed_branches\n  $branch"
rebase_abort_verbose $branch
  fi
done


# return to starting branch
return_from_branch $branch


# report success/failure
if [[ $failed_branches ]]; then
  echo -e "\nThe following branches failed to rebase:" \
  "$failed_branches" >&2
  exit 1
else
  echo -e "\nAll branches are up to date."
  exit
fi
___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel