Advanced Subversion Commands
¶ Prior Reading
¶ Rationale
There are some Subversion and Terminal commands that those working in the LEMDO repository
may occassionally use. They are more advanced commands, meaning that they should only
be done by those who are very comfortable working in the command line and who have
consulted with the LEMDO Team, as there is some risk associated with them. This documentation will explain the
practice for adding, deleting, and moving files in the Subversion repository as well
as for showing the commit log for the Subversion repository and comparing versions
of a file in Terminal.
¶ Practice: Add Files to the Repository
To add a file to the centralized LEMDO repository, you must first create and save
it in the correct folder. For example, if you wanted to create an annotations file
for the Merchant of Venice edition, you would need to first create the file in Oxygen, validate it, and save
it in the data/texts/MV/app folder. For best practices around naming files, read
Name Files: Naming Conventions.
In Terminal, run an
svn status
to ensure that you have created the file in the correct place. You should see a question
mark (?) on the left side of the window followed by the pathway to your new file and the file name. This indicates that you have created a file, but you have not yet saved it to the centralized repository.
Navigate down the pathway to the lowest possible folder using the command
cd
. If you were adding the annotations file as described above, the command would be
cd data/texts/MV/app
. Once you are there, run svn add
followed by a space and the full name of the file that you wish to add (including
the file extension). Using the same example as above, your command would be svn add emdMV_M_annotation.xml
. The question mark on the left side of the Terminal window should now be an upper-case
“A”. This queues the file to be added when you commit, but it does not send it to
the centralized repository.You can now
svn commit
as normal.¶ Step-by-Step: Add Files to the Repository
Validate your file in Oxygen and save it in the correct folder.
In Terminal, run
svn status
.cd
to the lowest level before your file.svn add [filename].xml
svn commit
as usual.¶ Practice: Move a File
If you have a file that is saved in the wrong folder (for example, if you saved your
edition bibliography in the app folder when you should have saved it in the crit folder) you will use the command svn mv in the Terminal to move it.
The first step to moving your file is to determine where it is currently located and
where you want it to be located. You will need to have the full pathway for both folders
(the one that it is currently in and the one that you wish for it to be in).
In Terminal, navigate to the lowest shared ancestor directory of both folders (i.e.,
the level before the pathways diverge). For example, if you wanted to move the file
emdFV_bibliography.xml from lemdo/data/texts/FV/app to lemdo/data/texts/FV/crit, the lowest shared ancestor is the FV directory.
You will then need to use the SVN command svn mv to move your file. There are three parts to this command:
Using the same example as before, to move the emdFV_bibliography.xml file from app to crit, you would type the command
The preface
svn mv
.The fileʼs current URL (the pathway to where the file is currently located and the
full file name, including the extension).
The fileʼs desired URL (the pathway to where you want the file to be located and the
full file name, including the extension).
svn mv app/emdFV_bibliography.xml crit/emdFV_bibliography.xml
. Once you have typed in the full command, press the Enter/Return key.When we move a file, we are deleting it from one location and adding it to another,
so you will get the messages for both of those actions. The first message will have
a “D” on the left side followed by the old pathway (including the full file name).
The second message will have an “A” on the left followed by the new pathway. This
means that you have queued the file to be moved, but have not yet sent the change
to the centralized repository.
You can now
svn commit
as normal, noting in your message that you moved a file.¶ Step-by-Step: Move a File
cd
into the lemdo directory.Type
svn mv
followed by the current url of the file and the new desired file url (e.g., svn mv app/emdMV_Bibliography.xml crit/emdMV_Bibliography.xml
) and press Enter/Return.Commit your files to the LEMDO repository (e.g.,
svn commit -m "Moved FV bibliography from the app folder to the crit folder."
).¶ Practice: Delete Files from the Repository
Use caution when you delete files from Subversion; deleted files can be recovered,
but recovering files is a time-consuming process. You should consult with the LEMDO team before deleting a file from the LEMDO repository. If you do delete a file, you will
first open Terminal and navigate to the lowest level using the command
cd
.Once you are in the lowest possible folder, type the command
svn del
followed by a space and then the full name of the file that you wish to delete (including
the extension). For example, to delete the file testFile.xml, you would run svn del testFile.xml
. You will get a message in Terminal with a “D” on the left followed by the name of
the file that you are deleting. This indicates that you have queued the file to be
deleted when you commit, but that you have not yet deleted it from the centralized
repository.Commit your change as usual.
¶ Step-by-Step: Delete Files from the Repository
cd
into the lowest possible level.svn del [filename].xml
svn commit
with a message that you have deleted a file.¶ Practice: Open Commit Logs
The
The command line will respond to these commands with a log entry or a series of log
entries that look(s) like this:
svn log
command makes it possible to read SVN logs from recent commits, thereby enabling
users to track each other’s work. To see recent commits, follow these steps:
Enter
svn log -l
followed by a space and the number of logs you wish to see. For example, if you wanted
to see 20 logs, you would type svn log -l 20
. Note that the character after the dash is a lower-case “L”.To see the very latest log entry, enter
svn log -r HEAD
.To see the log entry for a specific revision, enter the number of the revision after
-r
. For example, svn log -r 1259
will return revision number 1259.To see the log entries for a specific date range, type
svn log -v -r {yyyy-mm-dd}:{yyyy-mm-dd}
(where the first yyyy-mm-ddis replaced by the start of the date range that you are interested and the second is replaced by the end of the date range). For example,
svn log -v -r {2024-01-01}:{2024-01-14}
will return all commits made between January 1 and January 14, 2024.r10098 | mrothwell | 2022-08-04 15:44:25 -0700 (Thu, 04 Aug 2022) | 1 line
adding MoMS sources from MoEML to LEMDO BIBL.
Each individual log entry corresponds with a commit submitted to SVN. A log entry
provides the revision number, the person who did the commit, the exact date and time
of the commit, and the comment they provided. The information provided by log entries
can be very helpful when attempting to solve mistakes and errors.
¶ Practice: Compare Versions of a File
The
svn diff
command allows you to compare two versions of the same file. It will show you the
exact changes that were made between one revision and another in a particular file.
This command is useful if you accidentally overwrite some work in a file and need
to consult an earlier version of the file to recover what you deleted.To use this command, type
svn diff -r
followed by the a space, the revision number of the first revision that you want
to compare, a colon, the revision number of the other revision that you want to compare,
and finally a space and the full file name of the file that you want to compare versions
of. For example, svn diff -r 1276:1279 PERS1.xml
will return log entries for revisions to PERS1.xml numbered 1276 through to 1279.¶ Further Reading
Prosopography
Janelle Jenstad
Janelle Jenstad is a Professor of English at the University of
Victoria, Director of The Map
of Early Modern London, and Director of Linked Early Modern Drama
Online. With Jennifer Roberts-Smith and Mark Kaethler, she
co-edited Shakespeare’s Language in Digital Media: Old
Words, New Tools (Routledge). She has edited John Stow’s
A Survey of London (1598 text) for MoEML
and is currently editing The Merchant of Venice
(with Stephen Wittek) and Heywood’s 2 If You Know Not
Me You Know Nobody for DRE. Her articles have appeared in
Digital Humanities Quarterly, Elizabethan Theatre, Early Modern
Literary Studies, Shakespeare
Bulletin, Renaissance and
Reformation, and The Journal of Medieval
and Early Modern Studies. She contributed chapters to Approaches to Teaching Othello (MLA); Teaching Early Modern Literature from the Archives
(MLA); Institutional Culture in Early Modern
England (Brill); Shakespeare, Language, and
the Stage (Arden); Performing Maternity in
Early Modern England (Ashgate); New
Directions in the Geohumanities (Routledge); Early Modern Studies and the Digital Turn (Iter);
Placing Names: Enriching and Integrating
Gazetteers (Indiana); Making Things and
Drawing Boundaries (Minnesota); Rethinking
Shakespeare Source Study: Audiences, Authors, and Digital
Technologies (Routledge); and Civic
Performance: Pageantry and Entertainments in Early Modern
London (Routledge). For more details, see janellejenstad.com.
Joey Takeda
Joey Takeda is LEMDO’s Consulting Programmer and Designer, a role he
assumed in 2020 after three years as the Lead Developer on
LEMDO.
Mahayla Galliford
Research assistant, remediator, encoder, 2021–present. Mahayla Galliford is a fourth-year
student in the English Honours and Humanities Scholars programs at the University
of Victoria. She researches early modern drama and her Jamie Cassels Undergraduate
Research Award project focused on approaches to encoding early modern stage directions.
Martin Holmes
Martin Holmes has worked as a developer in the
UVicʼs Humanities Computing and Media Centre for
over two decades, and has been involved with dozens
of Digital Humanities projects. He has served on
the TEI Technical Council and as Managing Editor of
the Journal of the TEI. He took over from Joey Takeda as
lead developer on LEMDO in 2020. He is a collaborator on
the SSHRC Partnership Grant led by Janelle Jenstad.
Navarra Houldin
Project manager 2022–present. Textual remediator 2021–present. Navarra Houldin (they/them)
completed their BA in History and Spanish at the University of Victoria in 2022. During
their degree, they worked as a teaching assistant with the University of Victoriaʼs
Department of Hispanic and Italian Studies. Their primary research was on gender and
sexuality in early modern Europe and Latin America.
Tracey El Hajj
Junior Programmer 2019–2020. Research Associate 2020–2021. Tracey received her PhD
from the Department of English at the University of Victoria in the field of Science
and Technology Studies. Her research focuses on the algorhythmics of networked communications. She was a 2019–2020 President’s Fellow in Research-Enriched
Teaching at UVic, where she taught an advanced course on
Artificial Intelligence and Everyday Life.Tracey was also a member of the Map of Early Modern London team, between 2018 and 2021. Between 2020 and 2021, she was a fellow in residence at the Praxis Studio for Comparative Media Studies, where she investigated the relationships between artificial intelligence, creativity, health, and justice. As of July 2021, Tracey has moved into the alt-ac world for a term position, while also teaching in the English Department at the University of Victoria.
Orgography
LEMDO Team (LEMD1)
The LEMDO Team is based at the University of Victoria and normally comprises the project
director, the lead developer, project manager, junior developers(s), remediators,
encoders, and remediating editors.
Metadata
Authority title | Advanced Subversion Commands |
Type of text | Documentation |
Short title | |
Publisher | University of Victoria on the Linked Early Modern Drama Online Platform |
Series | Linked Early Modern Drama Online |
Source |
TEI Customization created by Martin Holmes, Joey Takeda, and Janelle Jenstad; documentation written by members of the LEMDO Team
|
Editorial declaration | n/a |
Edition | Released with Linked Early Modern Drama Online 1.0 |
Encoding description | Encoded in TEI P5 according to the LEMDO Customization and Encoding Guidelines |
Document status | prgGenerated |
Funder(s) | Social Sciences and Humanities Research Council of Canada |
License/availability | This file is licensed under a CC BY-NC_ND 4.0 license, which means that it is freely downloadable without permission under the following conditions: (1) credit must be given to the author and LEMDO in any subsequent use of the files and/or data; (2) the content cannot be adapted or repurposed (except in quotations for the purposes of academic review and citation); and (3) commercial uses are not permitted without the knowledge and consent of the editor and LEMDO. This license allows for pedagogical use of the documentation in the classroom. |