Attached the test script. The mailing list seems to have redacted the email addresses used in the test, which makes the test fail.
On Thu, Jan 5, 2017 at 10:52 PM, Artur Shepilko <nomadb...@gmail.com> wrote: > Saw your message and recalled that I stumbled on the same issue some > years back. Indeed fossil trumps git, so nobody looks back :) > > In case you wonder, the reason you saw the email and name getting > swapped is because the email was expected to be in form <user@email>, > mind the <>. > > I just checked-in the fix > (http://fossil-scm.org/index.html/info/76d9a4555b56405d), hope this > works for you. > > Briefly, fossil user contact info may be formatted as email-only > (u...@email.com), or also include a name ("Name User" > <u...@email.com>) in addition to other type of info (??mail, phone). > > Below is a test-script I used to verify the functionality. > > As a side-note, fossil user's contact info format seems to be not > explicitly specified. So technically, fossil would accept anything > there. Yet looking at the export --git code, there are some implied > expectations about possible contents of the info field in users table. > Looks like the email was generally expected in form: "Name User" > <u...@email.com>, note the brackets <>. > > The fix preserves these expectations, just in case. Following is the > test-scipt I used to verify the generation of the git committer > record: > > --------------------------- > #!/bin/bash > > if [ -e xtest.fossil ] ; then rm xtest.fossil ; fi > if [ -d xtest ] ; then rm -rf xtest ; fi > if [ -e xtest.git-fast ] ; then rm xtest.git-fast ; fi > if [ -d xtest-git ] ; then rm -rf xtest-git ; fi > if [ -e xtest-git.authors-expected ] ; then rm xtest-git.authors-expected ; fi > > fossil version > > fossil init xtest.fossil --admin-user adminuser > > fossil user new "email@as.username" "" "" -R xtest.fossil > fossil user new no-info "" "" -R xtest.fossil > fossil user new has-email-only "has-email-o...@email.com" "" -R xtest.fossil > fossil user new has-info "Name User <has-i...@email.com>" "" -R xtest.fossil > fossil user new has-general-info " \"First Last\" < > has-general-i...@email.com > other info" "" -R xtest.fossil > fossil user new "<bracketed-email@as.username>" "" "" -R xtest.fossil > > echo "#######################################################" > echo "I|FOSSIL::user list:username info" > fossil user list -R xtest.fossil > > echo "#######################################################" > echo "I|GIT::xtest-git.authors-expected list:{name, email}" > cat <<EOF >xtest-git.authors-expected > {First Last, has-general-i...@email.com} > {Name User, has-i...@email.com} > {adminuser, adminuser} > {bracketed-email@as.username, bracketed-email@as.username} > {email@as.username, email@as.username} > {has-email-only, has-email-o...@email.com} > {no-info, no-info} > EOF > cat xtest-git.authors-expected > > echo "#######################################################" > echo "I|FOSSIL::repo setup" > mkdir xtest > cd xtest > fossil open ../xtest.fossil > fossil user default adminuser --user adminuser > > echo "Test" >>test.txt > fossil add test.txt > fossil commit -m "By default" > > echo "Test" >>test.txt > fossil commit -m "By email@as.username" --user "email@as.username" > echo "Test" >>test.txt > fossil commit -m "By no-info" --user no-info > echo "Test" >>test.txt > fossil commit -m "By has-email-only" --user has-email-only > echo "Test" >>test.txt > fossil commit -m "By has-info" --user has-info > echo "Test" >>test.txt > fossil commit -m "By has-general-info" --user has-general-info > echo "Test" >>test.txt > fossil commit -m "By <bracketed-email@as.username>" --user > "<bracketed-email@as.username>" > > fossil timeline > > echo "#######################################################" > echo "I|FOSSIL::export --git" > cd .. > fossil export --git xtest.fossil >xtest.git-fast > > echo "I|GIT::import" > mkdir xtest-git > cd xtest-git > git init > git fast-import <../xtest.git-fast > > git checkout trunk > git log --oneline --pretty=format:"{%aN, %aE}" --reverse | sort -u >>../xtest-git.authors > > echo "#######################################################" > echo "I|GIT::xtest-git.authors list:{name, email}" > cd .. > cat xtest-git.authors > > echo "#######################################################" > echo "I|TEST::diff to xtest-git.authors-expected" > diff xtest-git.authors xtest-git.authors-expected || echo > "E|FAILED-TEST::diff to xtest-git.authors-expected" > > --------------------------- > > > On Tue, Dec 20, 2016 at 5:35 PM, Chad Perrin <c...@apotheon.net> wrote: >> When exporting from a Fossil repository and importing into a Git >> repository, the commits all seem to identify the email address as the >> name and the name as the email address. The command I use is >> essentially identical to what the documentation/example at >> fossil-scm.org, and I do not see a way in the help documentation for the >> tool or on the website for how to control the way it identifies the >> author of a commit on export. >> >> Is there a work-around for this? Is this a problem affecting anyone >> else? Any help figuring this out would be appreciated. >> >> -- >> Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ] >> _______________________________________________ >> fossil-users mailing list >> fossil-users@lists.fossil-scm.org >> http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
xtest.sh
Description: Bourne shell script
_______________________________________________ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users