From: Yann Droneaud <ydroneaud@opteya.com>
To: git@vger.kernel.org
Cc: Yann Droneaud <ydroneaud@opteya.com>
Subject: [PATCH] t0020-crlf: test rebase with text conversion and safecrlf
Date: Fri, 21 Jun 2013 16:15:24 +0200 [thread overview]
Message-ID: <1371824124-4242-1-git-send-email-ydroneaud@opteya.com> (raw)
In-Reply-To: <fb20a7d711fdd218f58f1f2090b1c515@meuh.org>
This patch add two tests to reproduce the problems described
in thread "git rebase fail with CRLF conversion"
<fb20a7d711fdd218f58f1f2090b1c515@meuh.org>
<http://thread.gmane.org/gmane.comp.version-control.git/228613>
<http://marc.info/?l=git&m=137182211414404&w=2>
- Add and commit a file with CRLF,
- Add and commit a .gitattributes with text flag for the file,
- Convert CRLF to LF in file, commit the change,
- Rebase the whole on top of another parent
The rebase currently failed.
This scenario is repeated twice, first with core.safecrlf set to warn,
a second time with core.safecrlf set to true.
git diff will also fail when core.safecrlf is set to true
and the file is not already converted to LF.
Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
---
t/t0020-crlf.sh | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/t/t0020-crlf.sh b/t/t0020-crlf.sh
index 1a8f44c..12147ba 100755
--- a/t/t0020-crlf.sh
+++ b/t/t0020-crlf.sh
@@ -506,4 +506,56 @@ test_expect_success 'New CRLF file gets LF in repo' '
test_cmp alllf alllf2
'
+test_expect_success 'Prepare rebase test' '
+ test_config core.autocrlf false &&
+ test_config core.safecrlf warn &&
+ test_config core.eol native &&
+ git branch rebase-initial &&
+ git checkout -b rebase-other rebase-initial &&
+ git commit --allow-empty -m "Another commit" &&
+ git checkout rebase-initial
+'
+
+# git rebase will failed to apply the "normalization" commit
+test_expect_success 'Rebase with core.safecrlf set to warn (default)' '
+ test_config core.autocrlf false &&
+ test_config core.safecrlf warn &&
+ test_config core.eol native &&
+ git checkout -b rebase-warn rebase-initial &&
+ for w in A couple of lines ; do echo $w ; done | append_cr >rebase-warn.txt &&
+ git add rebase-warn.txt && git commit -m "Added raw text" &&
+ echo rebase-warn.txt text >> .gitattributes &&
+ git add .gitattributes && git commit -m "Added .gitattributes" &&
+ git rm --cached rebase-warn.txt && git reset --hard &&
+ git add rebase-warn.txt && git commit -m "Normalized" &&
+ git rebase rebase-other || {
+ git status && git diff &&
+ git add rebase-warn.txt && git rebase --continue ;
+ }
+'
+
+#
+# git rebase will failed to apply the "normalization" commit
+# additionnaly
+# git diff and git add will failed when core.safecrlf is set to true
+#
+test_expect_success 'Rebase with core.safecrlf set to true' '
+ test_config core.autocrlf false &&
+ test_config core.safecrlf true &&
+ test_config core.eol native &&
+ git checkout -b rebase-true rebase-initial &&
+ for w in Another couple of lines ; do echo $w ; done | append_cr >rebase-true.txt &&
+ git add rebase-true.txt && git commit -m "Added raw text" &&
+ echo rebase-true.txt text >> .gitattributes &&
+ git add .gitattributes && git commit -m "Added .gitattributes" &&
+ git diff || git add rebase-true.txt ||
+ for w in Another couple of lines ; do echo $w ; done >rebase-true.txt &&
+ git add rebase-true.txt && git commit -m "Normalized" &&
+ git rebase rebase-other || {
+ git status && git diff || git add rebase-true.txt ||
+ for w in Another couple of lines ; do echo $w ; done >rebase-true.txt &&
+ git add rebase-true.txt && git rebase --continue ;
+ }
+'
+
test_done
--
1.8.2.1
next prev parent reply other threads:[~2013-06-21 14:17 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-21 13:41 git rebase fail with CRLF conversion Yann Droneaud
2013-06-21 13:51 ` Yann Droneaud
2013-06-21 14:15 ` Yann Droneaud [this message]
2013-06-21 14:24 ` [PATCH] t0020-crlf: test rebase with text conversion and safecrlf Yann Droneaud
2013-06-21 14:29 ` git rebase fail with CRLF conversion Yann Droneaud
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1371824124-4242-1-git-send-email-ydroneaud@opteya.com \
--to=ydroneaud@opteya.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).