tests/test-mailmap.t
author Pulkit Goyal <7895pulkit@gmail.com>
Mon, 24 Aug 2020 15:20:09 +0530
changeset 45479 09edbff6ae8d
parent 37262 8e57c3b0dce4
permissions -rw-r--r--
merge: store ACTION_KEEP_ABSENT when we are keeping the file absent locally If a file is not present on the local side, and it's unchanged between other merge parent and ancestor, we don't use any action, neither we had a if-else branch for that condition. This leads to bid-merge missing that there is a such action possible which can be performed. As test changes demonstrate, we now choose the locally deleted side instead of choosing the remote one consistently. This is also wrong behavior which is resulted because of missing possible action. It will be fixed in next patch. This whole logic is not acurrate as we should prompt user on what to do when this kind of criss-cross merge is in play. Differential Revision: https://phab.mercurial-scm.org/D8940
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
37212
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     1
Create a repo and add some commits
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     2
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     3
  $ hg init mm
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     4
  $ cd mm
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     5
  $ echo "Test content" > testfile1
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     6
  $ hg add testfile1
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     7
  $ hg commit -m "First commit" -u "Proper <commit@m.c>"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     8
  $ echo "Test content 2" > testfile2
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     9
  $ hg add testfile2
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    10
  $ hg commit -m "Second commit" -u "Commit Name 2 <commit2@m.c>"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    11
  $ echo "Test content 3" > testfile3
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    12
  $ hg add testfile3
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    13
  $ hg commit -m "Third commit" -u "Commit Name 3 <commit3@m.c>"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    14
  $ echo "Test content 4" > testfile4
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    15
  $ hg add testfile4
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    16
  $ hg commit -m "Fourth commit" -u "Commit Name 4 <commit4@m.c>"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    17
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    18
Add a .mailmap file with each possible entry type plus comments
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    19
  $ cat > .mailmap << EOF
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    20
  > # Comment shouldn't break anything
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    21
  > <proper@m.c> <commit@m.c> # Should update email only
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    22
  > Proper Name 2 <commit2@m.c> # Should update name only
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    23
  > Proper Name 3 <proper@m.c> <commit3@m.c> # Should update name, email due to email
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    24
  > Proper Name 4 <proper@m.c> Commit Name 4 <commit4@m.c> # Should update name, email due to name, email
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    25
  > EOF
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    26
  $ hg add .mailmap
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    27
  $ hg commit -m "Add mailmap file" -u "Testuser <test123@m.c>"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    28
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    29
Output of commits should be normal without filter
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    30
  $ hg log -T "{author}\n" -r "all()"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    31
  Proper <commit@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    32
  Commit Name 2 <commit2@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    33
  Commit Name 3 <commit3@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    34
  Commit Name 4 <commit4@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    35
  Testuser <test123@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    36
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    37
Output of commits with filter shows their mailmap values
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    38
  $ hg log -T "{mailmap(author)}\n" -r "all()"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    39
  Proper <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    40
  Proper Name 2 <commit2@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    41
  Proper Name 3 <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    42
  Proper Name 4 <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    43
  Testuser <test123@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    44
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    45
Add new mailmap entry for testuser
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    46
  $ cat >> .mailmap << EOF
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    47
  > <newmmentry@m.c> <test123@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    48
  > EOF
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    49
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    50
Output of commits with filter shows their updated mailmap values
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    51
  $ hg log -T "{mailmap(author)}\n" -r "all()"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    52
  Proper <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    53
  Proper Name 2 <commit2@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    54
  Proper Name 3 <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    55
  Proper Name 4 <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    56
  Testuser <newmmentry@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    57
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    58
A commit with improperly formatted user field should not break the filter
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    59
  $ echo "some more test content" > testfile1
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    60
  $ hg commit -m "Commit with improper user field" -u "Improper user"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    61
  $ hg log -T "{mailmap(author)}\n" -r "all()"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    62
  Proper <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    63
  Proper Name 2 <commit2@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    64
  Proper Name 3 <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    65
  Proper Name 4 <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    66
  Testuser <newmmentry@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    67
  Improper user
37262
8e57c3b0dce4 templatefuncs: do not crash because of invalid value fed to mailmap()
Yuya Nishihara <yuya@tcha.org>
parents: 37212
diff changeset
    68
8e57c3b0dce4 templatefuncs: do not crash because of invalid value fed to mailmap()
Yuya Nishihara <yuya@tcha.org>
parents: 37212
diff changeset
    69
No TypeError beacause of invalid input
8e57c3b0dce4 templatefuncs: do not crash because of invalid value fed to mailmap()
Yuya Nishihara <yuya@tcha.org>
parents: 37212
diff changeset
    70
8e57c3b0dce4 templatefuncs: do not crash because of invalid value fed to mailmap()
Yuya Nishihara <yuya@tcha.org>
parents: 37212
diff changeset
    71
  $ hg log -T '{mailmap(termwidth)}\n' -r0
8e57c3b0dce4 templatefuncs: do not crash because of invalid value fed to mailmap()
Yuya Nishihara <yuya@tcha.org>
parents: 37212
diff changeset
    72
  80