Tip:
Highlight text to annotate it
X
I'm David Turner
and I'm teaching this class called webpage programming
cse 322 webpage programming
Fall 2011
I'm teaching this
in a web based format
I will provide some videos to help
the students along with the assignments.
The purpose of this video is to go over the Subversion assignment
I'm going to carry out this assignment so you see
how to do what I'm asking you to do
This is the course web page.
I'm in the process of building this.
It is going to look different when you read it.
This video covers the first assignment, which is on Subversion.
I'm going to click on that.
You'll be submitting all of your work to me
in the course
by committing it -- or writing it -- into
a Subversion repository.
You can read about Subversion here and of course follow these links.
I will assume that you've become familiar with subversion based on my suggestions.
I'm going to show you what I expect you to do at this point which is
to start experimenting
with your Subversion repository. Actually everybody in the course
will have their own
Subversion repository and only
you and I will have access to that repository so you'll be writing
things into the repository
and I'll be reading them from the repository and evaluating your work that way.
I may also write something into your repository as well
for one purpose or another. So that's also possible.
Subversion is part of a
class of programs called
version control
or revision control.
It's something that software developers use
to share source code
with team members
and to maintain a record
of changes to the code base.
So it's useful to gain practical knowledge of it.
I think most professional programmers
use a version control system,
if not subversion itself.
It's a popular system.
This is the URL
that Subversion clients will use to access
your repository.
I will send you a username and a password.
So these should be in one of the emails that I sent to you.
If you can't find it
then you need to contact me. And tell me
that you need a username and password. Make sure you tell me the who you are in
that email as well.
I'm going to create a repository called test and I'm going to put some text in it.
The file will be README.txt.
Then I'll perform some experiments
with a text editor, where we modify the contents
of README.txt and try to
write those contents into the repository and verify that these have been
written into the repo. So this is just practice,
making sure that we we understand. how to do things.
I recommend that you use the name "cse322"
as the name of your folder
that will store
your working copy of the repository.
I'll refer to
that folder as cse322 throughout the course.
I'm going to create a new folder
and give it that name.
I'm using windows here. You don't have to use windows.
You can use Linux or macintosh.
In any case, you need to have a Subversion client installed.
I have already installed a Subversion client
called TortoiseSVN.
Double click on that folder.
I get this empty folder that we just created. I'm going to right click
and you'll see Subversion integrated into
this interface, which is called Windows Explorer.
Windows Explorer provides a graphical view
of your filesystem.
When you install tortoiseSVN, it integrates itself into
Windows Explorer, as you can see here.
The choices in the menu include checking out a repository
and an item that expands out into a larger number of items.
We need to
first check out the repository.
I STOPPED EDITING THE CAPTIONS AT THIS POINT
process fiance so um...
view our role so preposterous that you've entered into it in the past
So the URL that we're going to use is right here.
This of course of your essay on username you need to set that
you know azide
aside
provide to you through that email
when you go back to uh... uh...
here i can't uh... no pointed not
it's a copy that
you know one of pasted in here
my username sterner
you'll need to intern in your own
username though and i give you an appealing
and uh... to check out directory is
you know my folder csc three twenty two on the desktop that's uh... what i
recommend that you do that so i'm going to do it'll be easier for you to follow
along with
wife videos and money my assistance uh... in emails and so on if you will
and if you follow along in this way but of course you're free to do it and uh...
put but the polar and some of the location that's also fine
so that's not what i want to do here is a strip on stores actually anticipate
check it out in a swelled head okay
this is a uh... we're using h_t_t_p_ s my reason for that is that uh...
or sending a username and password
over the internet so we want to think sure that that's a cryptic
uh...
but uh... well i don't have
the uh... um... i didn't install in my webserver subversion by the way so i
have an installer operating within uh...
apache web server i don't have
they commercially signings
uh... certificate uh... to that's used in making h_t_t_p_ s connections so
we're going to need to
except myself science can't cure
and all except permanently on that now i need to um...
type in my by username and password the one that uh... i gave you
and uh... i'm going to save the authentication
that's going to write password into
why uh... my filesystem local here so i won't need to um... enter it in each
time it's it presents a small
uh... security problem to do that uh... but i think it's uh... in our case is
worth the risk at this point but uh... for other
other projects that uh... may have
song more um... serious uh...
uh...
security concerns uh... you might not actually want to do that
okay pilot season we checked it out look at this provision hero
and that's because there's nothing in there so retribution zero remember when
we right into the repository
or writing in versions of our project
and those versions are certainly are sequentially numbered so there's
actually nothing in there right now so its provisions here only
commit something will be at revision uh... one
so here's a foreign or take a look at this
this is
subversion the subversion client only checked out
the empty repository created this
this folder cold dot nasa p_m_s_ to control
is a folder that contains these um... uh... information so every folder in
your working copy
of the repository will have a dog
sdn folder in it
that's true
borough mullenix a mcintosh is well
and uh... almanacs of macintosh you should be uh... um...
you should be careful that you you won't see this unless
uwm
because uh... uh... took
the name of the
before start of the thought that means it's is not displayed by default in
uh... listings slick when he is the ls command princeton's so
it's a hidden folders we need to is a special command to repeal it
and uh... actually i have uh... marin
turned on that
you know i had turned out almost forum search options to collect at this
yes i a m
going to view arnold
see this choice hidden files and folders show
hidden files for syndrome which is to have that sat on those steaks at all
with apply that you'll see the dot in city and the poor it's no longer visible
and uh... but i find that inconvenient
i'd like to see of things which are um...
designated as hidden
so i usually going on here and i turn it off another recommendation i have
already which i always do
is to turn this hahaha i'd extensions for known file types this is set on by
default
saudi usually go in and take that off because i'd like to see the
the file extension my clicker to follow index dot html like to see the name
index dot html
and uh... yes this is sad
and then the dot html
part of the file name the extension
uh... will not be displayed in windows explorer so i'd like to take that off
because
uh...
i like to see that extension and sometimes
uh... the extension is some critical an important if you want to change the
extension of the file
it's hard to do
if uh... if the extension maps to uh... unknown file time
so they can get you into problems
so uh... when i take this off by the way i usually apply the upsetting to all
portsip click on that
this old this will uh...
recurs or
propagates through well all the folders that money
this is going to do that
all right now the next step is to create this um...
create a folder called test
let's go back there and do that
amak created a new plan
pinnacle test
and you'll see this little symbol right there
windows explorer doesn't normally display this but
we've installed taurus sdn it integrates itself in
and is now displaying this icon to show that it doesn't know what to do with
this folder were inside a subversion
uh... working copy
and um...
and there's a folder in their own and it's not designated as
being in the repository or being out of the repository so will fix that manana
descend into that folder
go back to the instructions
and i'm asking you to make it a file called red-meat dot t_ xti
use a text editor for that
when you go back in there
amanda creating new
textile man
they want open document texas is not a
this is not a plane uh... character file it so the binary file
doesn't have judge only character dating and things like microsoft word
it's got uh... character data and it's got none carrick data mixed together so
we want
the of
purer
a fire wood only character data in a uh... otherwise
called the text file
and uh... rich
sticks august sun appeared as text documents picked up
and it's giving me the extension
and i really had that extension in there so i'll just take one of those out
and let's go ahead and uh...
at at uh... this note
you could also that it that with uh... was word power which is really normally
do
word
it's a little bit easier ronald
if it doesn't really matter
so let's go back and uh...
as attached to it kaka angeles to that one of put too
uh... hello person everybody puts it in there
save it
and uh... though in a right to test folder in the contents into the
repository now before you do that
they want to show you
uh...
that we can actually brown's this is your l
and subversion
the subversion client that since
integrated in with windows explorer actually
will hold
interact
was that you are alll weekend
user browser two
interact with the u r l as well
so let's take a look at what it looks like from our brown signal will need to
enter in our password again
have an acceptance
to the security certificates not trusted it's not signed by a close to the forty
itself side but i mean someone
just accept them
the username
this username i give you
and the password is the password again to you as well
all like that
save password for this i'm going to do that
so
where revision zero like appears sister root folder
let's go back to uh... here
now
aminika myth
the
the work into the repository wanted to just i would recommend making a habit of
going up to the root folder
right-click command
and uh... commit was intimate
and you'll see there's a message there which is so you could put in the
comments
and uh...
and it uh... remain don t x t
with hello text something
and um...
here it is a list of
items that could be a written of their post right now they're not currently see
the status is it's non diversion so we can do a select those
and uh...
there's arnelle selected to be written into the repository listed okay
and there it is
we have completed reasonably prisoners in there
so that's done and noticed the electrons now david
knows a tech park in new york because the working copy
is synchronized now with the repository subversion knows that this folders
designated
or that we intended to be
part of the um... part of the repository so it's
it's now i know nothing
all right
and uh... let's go back to the website
and uh... let's refreshes
there it is now we have a folder called test
then you can see red-meat t extn their even click on that's who you are a lot
better we can see
hello that lee wrote into it
priscilla purpose a writing in the repositories not to could navigate their
with uh... uh...
into the browser but
i recommend that you used the browser to para finds that the head
material that you're trying to submit to me is in fact uh... committed into the
repository so it's it's a common that
to the students think they have written
uh... all of their changes and new files into the repository where in fact they
have in stock
i recommend going to the ural
of the repository verifying that what you think is there is in fact there
coming back to her we are here
and uh... lots of other ways to do this i talk about groups of clips you can
integrate uh...
subversion inside of the clips and so on
and uh...
all sort of in the wrong place
now what i want to do is uh... show a little bit about uh...
held
subversion work so i'm going to ask you to do some experiments
so i want a separate working copy of the repository khaled csc three twenty two
altered
so let's go ahead and um...
could a new folder for that
you know this should not
the inside of
any other
working copy so you would like great this inside of that one
glory going to do here is gonna pretend as if
someone else is working on the project
and they're checking out the
the
the code base they're going to make a change to it's going to write kind the
repository were going to retrieve the repository of the the changes
synchronize our working copy within new
state of the repository and anzio changes propagate from one developer to
another that's what we're going to be checking my mail
so uh... this is no empty aside even mark c this is not a subversion paused
for a seal here the supporters as a so-so personal repositories of the
folders or not
they do not have taught us would be in control folders in them they're not
working copies with this used to work hard work couples make the store can
copy
but let's make it a copy of the same repository that uh... we have here
song unnadu sports sdn bhd checkout i can do it here i can right click on the
folder into checking on oregon's
aiken
descend into the folder and to the new check out there as well so at the last
time there's
typically one of the one way to do things and uh...
here it is hosting czech town
it cash to these are some
repositories of it
interacted with recently but you can see it's
its cash the new one and let's just leave it set like that annual seat now
that check out this is the ul relevo repository which is the same at the
checkout directory passing all after him
and uh... let's just go ahead and accept that
and it shows shoe you know that it added this folder testament added
the soil red-meat aunty expertise was became man
here it is opened up the remetente sixty there's the hello
and uh... now if we go back to the other folder missus csc three twenty two it's
the same thing
a lot of post the new person decides to change this
and uh... they go hello
hello
uh... selig
you know how aren't you
like uh...
campus say is that uh...
we'll take a look there's a little red exclamation point means at this uh...
the spoils the modified since it was synchronized last synchronize with the
repository
that means are uncommitted changes there
all right so here we have uh... panel
the final it's been changed
antoinette
me just show that to you
different way
and here's the uh... file which is somewhat unchanged
and uh...
boulders wouldn't commit archangelsk this is daniel orders model for
alone
only commit the changes
asean command
and uh... uh...
that's really cool man
created sally
see this is the change that's going to uh... uh...
to commit its it's uh... dissecting it as a
while it's been a lot of fun right then and there
and as you can see see
it succeeded
by the way the system always succeeded too
read this carefully make sure that there hasn't been any problems
and so now this is green
and wants it or click on that sees hello sally how are you but if we look at our
of the world
it's not out a medically synchronized answers notes that's the old version but
it doesn't know that preposterous been changed
legal appear like at the repository
we're going to test
and then read me
it's been modified so here or accessing the repository correctly
and here were accessing our local working copy which is which is
which is uh... out of date
so i try to make this up to date how do i do that i want to go to the root
folder here which i recommend always doing
uh... because of you if you do an update
descended down into your project you're going to just update
you know branch of your
repository and i think are staying in you don't always
remember or know that that's what's happening so i recommend
as a general polls they always updating in committing from the route
and so it's going to hear in a right-click
and i
i_c_i_ sitting and update
selectable
thus update a cat's name of the file
notes that revision to see it
changes to the uh...
to the repository
around
unlabeled with revision numbers
sandoval ican there there's a change
pellets to along
let's do this looks to let's
let's and
in aligned here
uh...
hello review students look said
uh... and fly writing a letter
i want to save that
and it's going to say at nine a_m_
phone
and that's in here a qualified adults go over to our
so your other developers going to modify that and they're going to have a line
down here as well they're going to say
uh...
uh... and
feel terrible something like that uh... self-test answering conflict there
trying to say two different things in there
now
these
to revisions that we just did to this final
uh... you cannot be automatically merged
because uh... um...
if we would be if we were to merge these two separate visions we have to miss
subversion when need to know whether implying comes before
for or after i feel terrible so
this this particular set of changes will
will result in a problem now
it's kind of a race condition here whoever gets there first is going to
well not race condition esterase
uh... whoever gets there first is going to wins the race in the other one will
have a problem so let's go ahead and
let's commit on our main folder handouts command on the other when the old folder
alaska right then and there
notice we have we haven't made any changes into the repository uh...
uh... now we're going to do that right now we're going to once again i'm not
gonna commit here although that would work destroying you
you know that going to carry out the polsey always committing from the route
and that's the way to avoid uh... errors
uh... although committing from them
from the sub folder in that case with would have been ok
so i'm going to uh... committee
moreau
and uh... lab
here's a message at it
uh... feel terrible
nasa file we're going to go ahead and can uh...
usa synchronized
look at the repo
i feel terrible
and over here
when you go to the root of watches this is going to
subversion will try to merge but will be inconsistent
of the and oppenheimer chapel
thing to do it has been updated
and there is enough you've heard of the minorities
and it's and read it says is conflicted readme dot t_ xti
it's in a conflict at st
excited and show you this analog here
and it shows you the history of commits is our first commit was here
you could see the comment that we rode in the past me
okinawan bus basically we can
we can retrieve any version
uh... any committed version
is uh... is irretrievable so this is kind of like an indefinite undo actually
so we don't need to um...
this is a report we need to resolve this
conflict here so with what we did update
uh... what happened was would hit okay on there
because the special mark so this an exclamation points a warning
and uh... to look at this it it added three five so that every evening dot
katie dot mine
beat me dot t_ xti dot
revolution to rethinking dot sixty revision three
let's take a look at those those are all
here's the original
here's the original file here worth the read me dot sixty file
it shows shoe
where it has the problem so hello sally how are you a silk and the problem is
but we have a
mine is i am
find and what they had follows this
this line he resigned feel terrible
and this
ars three that means
this uh...
this is from revision three
dot and minuses what's
this is the version that's in my
local working copy it's not even commit s written like that
so that's what that one looks like they'll
take a look at aunt
this
review dot sixty dot mind this is the file
that's that was there
prior to doing an update
hello sally how r u iam fine
this
red-meat outtakes tudo revision to bats
what the file looked like
before and the other guy
committed the conflicting change
and behold
well into that or it's the revision
it's the version of this final
that we must fight
still read me don t x t r modifications to this for based on this revision
that's what it is excellent
and so stick a look at uh... so it's just this line without anything this is
the revision revision to this is a
version of the file that are changes were written against
and this is sick
current what's currently in the repository
so we have a choice here
and uh... there's many different ways of doing business
and uh... weekend
weekend manually resolves this
going in here and um...
editing it
or we can do it a lot of matically we can do course sdn we could do
uh...
something and i think resolved here would be resolved
and uh... stuff
soon
and lemon lime and show you that the people in the show use how do
how too many lira salsa so
the other developer said he'd feel terrible
and uh... he icing patient
pauline uh... feel
you know if you love feel terrible and fine you know whatever standards
trillion
well you might result source code
and so let's go out and say that uh...
so we're manually
uh... updating that
and then i'm gonna right click on this at a remember exactly how to do this and
that uh...
produce all the time by the way and so many different ways of doing it doing in
at this point
it's not uh... where i normally do that
but uh... here
i'm going to uh... old
let's go and of course espy and
and i
thing cool to is select cortisol
and
here
a letter right click on that board
and uh... this is where passion have done this before so there's a lick by
resolver
system orem
component
so i can by can resolve using mayors but that does a sick copies
read me
dot t_ x t dot or three on onto reading twenty extn synchronizes sixty dot or
three was
by me reading that sixty it makes it equal to two x two doors three
resolve the conflict using mine that
places remi dot cheeks two u with
red-meat dot sixty dot mine and prepares to write
that into the repository causing the other
persons changes to be lost
this resolve conflict using theirs rings discard my changes and use their changes
but what we did in fact was we we manually resolve to we went in there and
manually results not what we do is we're going to say
or markets were soft you choose that
are you sure
you want to mark the conflicted file was resolved in put yes on that
and uh... so it's still labeled with the arnelle
now its system changes around committed
and uh... once again we've
we've we've edited it we didn't commit anything abt all appears to prove that
to you can see that
but still i feel terrible we haven't committed those changes
but uh... went up to the root here
and i'm going to commit
and uh...
and understand and put a comment to marianna wright in the changes
that's provision for
let's go back here let's refresh there it is not a feel terrible and fine
and over here this is
this is still the old version right at the sizzle and i think terrible it's go
ahead and
synchronize let's update
and lick updated reading that sixty a modified it
on chill walk on that c
resolve conflicts
this is the land at it i feel terrible it's only put in there before
so now you conceive that to go in there
my uh...
my collaborator the other developer has resolve the conflict
that involved change that like a man
bananas also
assist the whole process of showing how to how conflicts can occur and how the
resolved
alone
so try to trigger a conflict like this and so on but none on nodal supper
changes need to lead to a conflict that i give you uh...
just a quick example men that'll be it for today
i'm gonna go in here
if i put in uh...
one-two-three-four
on uh... this one
on three twenty two
and india all version down to put uh...
five six seven eight on the bottom
this can be birch ter
because this can be merged unambiguously
the the merger of these two changes would be good to have one two three four
on the top
and five six seven eight on the bottom so this can be mal this can be merged
with our problem
phyllis show how that's been doesn't matter which side we start from will
start from all over again
i'm going to commence girl
and uh... you know added to the five six seven eight never decided there
and what's the report touring
there it is
let's go back here
and uh... once again you know we're going to merge this and i'm going to go
up to the
parent and be disciplined about my
when a policy and then they go up to the uh... to the root folder rather and i'm
going to
form enough
look at that
he didn't say updated here's that merged with tells you right here
in its report
that there was some urging activity going on so some changes to the
repository
had to be blended in or merged in with changes that i made to the working copy
so let's look in there
ticket
emerged it correctly sitting
dots at somerset happen all my local working copy in the repository look at
this it's still the same thing
so i need to commit that
those uh... those changes when you commit that meant
that merger
when they go up here
and uh... commit
tune for the comments in there
and uh... we come up to here now we see that that's of course in the repository
one last thing we need to do the other developer
still has the
but not marsh version also going to come up here and to update
so here we didn't have any conflicts just show you how automatic um...
merging of stunned with character file sent this automatic merging cannot
occurred with files that have club binary formats o_j_ pegs
uh... be empty files audiophiles word files the cannot be automatically merged
and some version has a
as a way out of detecting um...
uh... files that are in binary format i think it's by and the extension i i
think that night
if you don't know for sure
but i think they look at the extension of the dot b_o_c_
they will treated as a binder object but actually you know what to do that
let's do an experiment their allman adds
one one
i'm going inside the tests for a lot and
the
pick started
and let's give it an extension
which is uh...
which is the extension of a don't binary object
like uh... what would that be *** keys something like that
like uh...
mistakes and dot
secluded team
cecil openoffice
became filed an extension might become unusable still want uh... zedillo dekhti
hun couldn't open office document
watched this this is
this is call this one
text
and let's get an open office document
let's go ahead and
to this new
open document
text
yet so detected extent right let's text
and the system and text
so you open this up
and uh... we're gonna put uh...
one-two-three in their say it
uh... test now
that's no an open office document but this one here
this simon open with
like his word pandering
right just to play it really stable choose no paranoia always used this time
i don't know always his her parents are panel so let's go ahead and open an
upward pant
and uh...
this uh... statement main aunt on
ryan character data
character do only
thus an experiment don't know how it's going to work
so they both then with o_j_ t
on a show that to you watched uh... so
this is no pad wide-open textile odi t
you know palaces fine character data but fun
might try to open and text to be t
like a leg yet
garbage
this is a binary
this is not character data and something else that's that's got its own
you know binary uh... data format in it
we know let's see what's a version does not and i've never done this before
or so let's let's go ahead and try to do a commitment
and these are non versions of the put
those in there
and uh... and uh...
what's
snow k
and let's uh... let's update
we're going to pastors are non texto deepti that looks good
this is our text on odbc
like a double clicked on uh...
you know it's going to produce 'cause it's not in format that it should be in
red so just just open ah...
though if you can open no pat it's not a problem so
let's uh... what's due this let's create some uh... conflicting changes
so it's uh...
let's go ahead an open myself in the text editor
i am character data only savannah put just like we did before
put uh... eh here
and uh...
and this one here liga this trina put
uh... and the next line
and uh... over here
this is one two three
for gonna put to dvd so there is a conflicting this cannot be merged
automatically
and uh... this other file
text dot
men doing there
this is no pad and i want to open up
text on routed to you know and
missus bb b
so and these are conflicting changes let's go ahead and commit from walter
so um...
added too
conflicting
uh... changes
like that in there
and uh... let's go over here
and let's do uh... let's do an update
deposed label is conflicting
valley killing there
uh... i just do that to open a new pad
let's take a look at the
textile go deep sea
and there it is that's all we expected
um... you're gonna manually
mollified assign character data only pbp the other one is fine character did not
only anne
sold say will do it pbp
and a year and you know whenever so the system example of how to resolve
a possible conflicts we're gonna go ahead and say it's uh...
in animal label that
let's go into rizal
voted to be hang on a label that is resolved
do you want to work the conflict if also wrist was resolved when we hit yes
let them
with the subversion program does is it deletes these other three temporary
files watch
this we suburb
returned so it
it took away that's temporary files for us now
this one here
is
now this is going to be tricky so i'm gonna go in there and open up
openoffice
writer him directly not empty one
antenna
this this is uh...
electors no dont mind and hear what happened at the da mining
they don't have done for me
see this is uh...
why did we lose
where what happened to the done mine i don't know what's going on there so
this
is
this is like the dot mind so there is no
it didn't see it didn't hurt american
right so it left
uh... those while alone like this
and uh... it didn't uh... tried to in fact merch
because it couldn't the file extension was file extension
what was not file extension 'cause it
it was able to merge in this regard dot mine and he really wearable to manually
go in there have been resolved
this one here
this is our original viale
like the dot mind
and uh... so it didn't
it didn't do that indicate it so it's
it's not based on file extension that's based on and uh... you know looking into
the file in analyzing whether it's character page tomorrow
so i don't know what out for them to use us to do that
but uh... that's that's what happened
let's look at the other ones this is the revision seven
which is one two three that was the earlier revision it makes sense a
revision eight that's the one that the
the other guy the all folder happens to be a tang
so no we we cannot manuel if we want to manually add modify that we would do
this and would take
these two line also
provision that would
not revisions and blood
our current file
uh...
and stick to current trial
and uh...
this is not for
were
i can't figure out what's going on here
missus oldest three of these open
revision seven revision a and on
texto de jesus currently so i don't want this one
artists want these to the susah
this is uh... the new one that i want and this is the uh... um... thus one
that's
so this is the one that's in the repo uh... name
focused list of style
there's uh... mon text
ability to be
sido
that's in the report of a anyone
and uh... status also
with that
and knows the difference between those
so um...
let's go ahead and we're going to have to go out to manually do this like this
lips not to the revision eight times so i want to do it over here
i wanna do it over here
uh... due to that one
and discovered as changes
and you can see here which made those changes with manually
edited this so if these are image finals you know we would do the same thing
really go along artist did with the other artist did
going here
and uh... bristle kitties
market has resulted in manually we could have done to the easy way to do it of
course you pick one of those ready
it did that
and ice storm
could commit
when the fixture conflicts
so does my use file extension society over them that uses to distinguish
between those uh... blues to file types
try that again text duty
absorb this one
want extruded shipping
narratives lists or manual
so that's uh...
basically sums it up and um... you know you should be caring you know those type
of experiments doing the reading
and uh... um...
trying to understand uh... much going on so that
will be using that throughout the rest of the course