Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove tools for CVS and Subversion #76340

Closed
vstinner opened this issue Nov 28, 2017 · 19 comments
Closed

Remove tools for CVS and Subversion #76340

vstinner opened this issue Nov 28, 2017 · 19 comments
Labels
3.7 (EOL) end of life build The build process and cross-build

Comments

@vstinner
Copy link
Member

BPO 32159
Nosy @brettcannon, @vstinner, @ned-deily, @ezio-melotti, @bitdancer, @serhiy-storchaka
PRs
  • bpo-32159: Remove tools for CVS and Subversion #4615
  • bpo-32159: Revert Misc/svnmap.txt #4639
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = None
    closed_at = <Date 2017-11-29.18:33:15.300>
    created_at = <Date 2017-11-28.20:22:20.747>
    labels = ['build', '3.7']
    title = 'Remove tools for CVS and Subversion'
    updated_at = <Date 2017-11-29.18:33:15.299>
    user = 'https://github.com/vstinner'

    bugs.python.org fields:

    activity = <Date 2017-11-29.18:33:15.299>
    actor = 'serhiy.storchaka'
    assignee = 'none'
    closed = True
    closed_date = <Date 2017-11-29.18:33:15.300>
    closer = 'serhiy.storchaka'
    components = ['Build']
    creation = <Date 2017-11-28.20:22:20.747>
    creator = 'vstinner'
    dependencies = []
    files = []
    hgrepos = []
    issue_num = 32159
    keywords = ['patch']
    message_count = 19.0
    messages = ['307159', '307169', '307170', '307171', '307172', '307173', '307174', '307175', '307178', '307183', '307228', '307242', '307244', '307247', '307248', '307249', '307250', '307251', '307252']
    nosy_count = 6.0
    nosy_names = ['brett.cannon', 'vstinner', 'ned.deily', 'ezio.melotti', 'r.david.murray', 'serhiy.storchaka']
    pr_nums = ['4615', '4639']
    priority = 'normal'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = None
    url = 'https://bugs.python.org/issue32159'
    versions = ['Python 3.7']

    @vstinner
    Copy link
    Member Author

    CPython migrated from CVS to Subversion, to Mercurial, and then to Git. CVS and Subversion are no more used to develop CPython.

    Changes of attached PR:

    @vstinner vstinner added 3.7 (EOL) end of life build The build process and cross-build labels Nov 28, 2017
    @vstinner
    Copy link
    Member Author

    New changeset fe2d5ba by Victor Stinner in branch 'master':
    bpo-32159: Remove tools for CVS and Subversion (bpo-4615)
    fe2d5ba

    @serhiy-storchaka
    Copy link
    Member

    Are you sure that these scripts are not used outside of CPython? They were here when CPython used Subversion, they were here when CPython used Mercurial, what is wrong with Git?

    The support of the svn:eol property is a thing I really lacked in Mercurial.

    @serhiy-storchaka
    Copy link
    Member

    Oh, you are VERY fast in committing Victor. Please restore these scripts.

    @vstinner
    Copy link
    Member Author

    Are you sure that these scripts are not used outside of CPython?

    How would someone use it? There are only part of the code base, they are not installed on the system (by "make install").

    If someone uses these scripts on another project which is not CPython, well, they can copy an old version from Python 3.6 and maintain their fork, no?

    Why would Python still maintain a tool if we don't use it or test it ourself?

    The support of the svn:eol property is a thing I really lacked in Mercurial.

    We are using .gitattributes to specify the end of lines of some files. A few examples:
    ---
    *.gif binary
    *.bat text eol=crlf
    PC/readme.txt text eol=crlf
    ---

    I understand that Git does handle end of line, and it's configurable by .gitattributes. Sorry, I don't know much more about that, and I'm not sure that this issue is the right place to ask questions about Git ;-) Maybe ask on python-dev if you are aware of an issue with Git?

    They were here when CPython used Subversion, they were here when CPython used Mercurial, what is wrong with Git?

    The scripts are very specific to CVS and Subversion. They are useful with Mercurial or Git.

    I wrote that we already changed the SCM twice since Subversion, to justify that I don't think that anyone still works on a CVS or Subversion fork of CPython.

    Well, if someone really does that, I don't expect that they work on the master branch, and so likely have a copy of these scripts :-)

    Oh, you are VERY fast in committing Victor.

    The PR was approved by Brett Cannon and Ned Deily.

    @vstinner
    Copy link
    Member Author

    The PR was approved by Brett Cannon and Ned Deily.

    Oh, and Mariatta after I added a NEWS entry.

    @serhiy-storchaka
    Copy link
    Member

    Is svnmap.txt used for mapping Subversion references to Mercurial references on the tracker? r88752

    @vstinner
    Copy link
    Member Author

    Serhiy: "Is svnmap.txt used for mapping Subversion references to Mercurial references on the tracker? r88752"

    Brett, David, Ezio: any idea for Serhiy's question?

    @serhiy-storchaka
    Copy link
    Member

    svnmap.txt was added in a single revision and was not changed anymore.

    commit 533c79d
    Author: Antoine Pitrou <solipsis@pitrou.net>
    Date: Sat Mar 5 17:46:03 2011 +0100

    Add the map of SVN revision numbers to changeset ids.
    This is mostly to help history-digging, especially when
    focussing on feature branches.
    Note that not all changesets are in the main repository,
    but they are all in the full history repository.
    

    It is needed for history. Old commit messages and discussion on mailing lists refer to Subversion revisions. Without svnmap.txt you will lost these references unless you have a clone of Subversion repository. I hope you are not going to get rid of Misc/HISTORY?

    It would be better to create a mapping from Subversion revisions to Git hashes.

    @ned-deily
    Copy link
    Member

    Sorry, I didn't see that the change included the deletion of svnmap.txt. However, I don't know where or by what that file might still be used, particularly by the lookup function used by the bug tracker. Presumably someone (Ezio, RDM, or Brett) knows.

    @bitdancer
    Copy link
    Member

    I think Serhiy's point is that it doesn't matter whether or not it is used by a tool, it is useful for humans. I don't know if it is used by the tracker; Ezio worked on that code, I think.

    @vstinner
    Copy link
    Member Author

    When I wrote PR 4615, I misunderstood the usage of Misc/svnmap.txt. I understood that it was used by removed files.

    I wrote PR 4639 to revert the file and clarify its usage in Misc/README.

    @serhiy-storchaka
    Copy link
    Member

    Wouldn't this add two 4 MiB patched in the git repository? Wouldn't this break the history of this file?

    @vstinner
    Copy link
    Member Author

    Serhiy: "Wouldn't this add two 4 MiB patched in the git repository? Wouldn't this break the history of this file?"

    No idea.

    @serhiy-storchaka
    Copy link
    Member

    How have you created PR 4639? What git commands were used?

    @vstinner
    Copy link
    Member Author

    How have you created PR 4639? What git commands were used?

    "git revert fe2d5ba", then I modified the commit to only revert svnmap (git commit --amend).

    Git internal storage is fully based on sha1. Identical objects should be merged naturally.

    My PR 4639 is made of a single commit: 58f0b38. You can inspect it using:

    $ git ls-tree 58f0b38b4058bfaa45a9896aca2b07f02b2de486 Misc/svnmap.txt
    100644 blob 142be7fc206e9d06d5cf62f6500ef987c0441087	Misc/svnmap.txt

    Compare it with the svnmap.txt *before* my revert:

    $ git ls-tree fe2d5babba5d26de2093b6518316b268488187be^ Misc/svnmap.txt
    100644 blob 142be7fc206e9d06d5cf62f6500ef987c0441087	Misc/svnmap.txt

    => *same* blob object (blob sha1: 142be7fc206e9d06d5cf62f6500ef987c0441087)

    @vstinner
    Copy link
    Member Author

    New changeset 859f7ce by Victor Stinner in branch 'master':
    bpo-32159: Revert Misc/svnmap.txt (bpo-4639)
    859f7ce

    @vstinner
    Copy link
    Member Author

    I reverted Misc/svnmap.txt.

    I understood that the removal of the two tools in Tools is now ok, and so I close the issue. If I misunderstood, please speak up and/or reopen the issue ;-)

    @serhiy-storchaka
    Copy link
    Member

    Thanks Victor!

    I'll open a topic on Python-Dev about file removals.

    @ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    3.7 (EOL) end of life build The build process and cross-build
    Projects
    None yet
    Development

    No branches or pull requests

    4 participants