On Tue, May 13, 2014 at 10:31:04PM +0200, Per Cederqvist wrote: > When the option is true (the default), Guilt does not create a new Git > branch when patches are applied. This way, you can switch between > Guilt 0.35 and the current version of Guilt with no issues. > > At a future time, maybe a year after Guilt with guilt.reusebranch > support is released, the default should be changed to "false" to take > advantage of the ability to use a separate Git branch when patches are > applied. > > Signed-off-by: Per Cederqvist <cederp@xxxxxxxxx> > --- > guilt | 28 +++- > regression/scaffold | 1 + > regression/t-062.out | 441 +++++++++++++++++++++++++++++++++++++++++++++++++++ > regression/t-062.sh | 137 ++++++++++++++++ > 4 files changed, 601 insertions(+), 6 deletions(-) > create mode 100644 regression/t-062.out > create mode 100755 regression/t-062.sh ... > diff --git a/guilt b/guilt > index 9947acc..7c830eb 100755 > --- a/guilt > +++ b/guilt ... > @@ -928,13 +935,22 @@ else > die "Unsupported operating system: $UNAME_S" > fi > > -if [ "$branch" = "$raw_git_branch" ] && [ -n "`get_top 2>/dev/null`" ] > -then > - # This is for compat with old repositories that still have a > - # pushed patch without the new-style branch prefix. > - old_style_prefix=true > +if [ -n "`get_top 2>/dev/null`" ]; then > + # If there is at least one pushed patch, we set > + # old_style_prefix according to how it was pushed. It is only > + # possible to change the prefix style while no patches are > + # applied. > + if [ "$branch" = "$raw_git_branch" ]; then > + old_style_prefix=true > + else > + old_style_prefix=false > + fi > else > - old_style_prefix=false > + if $reuse_branch; then > + old_style_prefix=true > + else > + old_style_prefix=false > + fi I don't know if this is a good idea or not, but: old_style_prefix="$reuse_branch" > fi > > _main "$@" > diff --git a/regression/scaffold b/regression/scaffold > index e4d7487..e4d2f35 100644 > --- a/regression/scaffold > +++ b/regression/scaffold > @@ -93,6 +93,7 @@ function setup_git_repo > git config log.date default > git config log.decorate no > git config guilt.diffstat false > + git config guilt.reusebranch false > } > > function setup_guilt_repo ... > diff --git a/regression/t-062.sh b/regression/t-062.sh > new file mode 100755 > index 0000000..85596ca > --- /dev/null > +++ b/regression/t-062.sh > @@ -0,0 +1,137 @@ ... > +function fixup_time_info > +{ > + touch -a -m -t "$TOUCH_DATE" ".git/patches/master/$1" > +} > + > +cmd setup_repo > + > +cmd git config guilt.reusebranch true > + > +cmd guilt push -a > +cmd list_files > +cmd git for-each-ref > + > +cmd git for-each-ref > + > +cmd list_files duplicate list_files & for-each-ref > + > +for i in `seq 5`; do > + if [ $i -ge 5 ]; then > + shouldfail guilt pop > + else > + cmd guilt pop > + fi > + cmd git for-each-ref > + cmd guilt push > + cmd git for-each-ref > + cmd guilt pop > + cmd git for-each-ref > +done > + > +# Check that "pop -a" does the right thing. What exactly is the right thing? no-op since the above loop poped everything? (I'd make the comment say what the "right thing" is.) Jeff. -- In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. - Linus Torvalds -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html