git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).